QuickPID
QuickPID copied to clipboard
Improvement idea: bool WouldCompute()
I have the use case, where the input is not a simple read, but a bit more complex calculations. So instead of doing the maths on every loop, just to ignore the outcome, because the timer, or the time window wasn't exceeded yet, it would be a good idea to test beforehand, if I need to calculate the input again.
I.e.: Instead of
unsigned long msNow = millis();
Input = calculations();
if (myPID.Compute()) {
windowStartTime = msNow;
}
handleOutput();
Something like
if (myPID.WouldCompute()) {
unsigned long msNow = millis();
Input = calculations();
if (myPID.Compute()) {
windowStartTime = msNow;
}
}
handleOutput();