diff --git a/PID_v1.cpp b/PID_v1.cpp index cb6637c..20601a3 100644 --- a/PID_v1.cpp +++ b/PID_v1.cpp @@ -71,9 +71,6 @@ bool PID::Compute() /*Add Proportional on Measurement, if P_ON_M is specified*/ if(!pOnE) outputSum-= kp * dInput; - if(outputSum > outMax) outputSum= outMax; - else if(outputSum < outMin) outputSum= outMin; - /*Add Proportional on Error, if P_ON_E is specified*/ double output; if(pOnE) output = kp * error; @@ -82,6 +79,9 @@ bool PID::Compute() /*Compute Rest of PID Output*/ output += outputSum - kd * dInput; + if(outputSum > outMax) outputSum= outMax; + else if(outputSum < outMin) outputSum= outMin; + if(output > outMax) output = outMax; else if(output < outMin) output = outMin; *myOutput = output;