Casts added to several functions in PID section

Signed-off-by: mdhsweden <mdhsweden@gmail.com>
This commit is contained in:
mdhsweden 2016-10-31 19:07:45 +01:00
parent 4b7fd40967
commit 40454ae608

View File

@ -104,7 +104,6 @@ float calcGravity(accel_t profile ) //const float x_axis, const float y_axis, co
float convertData(int inputRange, int outputRange, int offset, float value) float convertData(int inputRange, int outputRange, int offset, float value)
{ {
return ((float)outputRange/(float)inputRange)*(value-(float)offset); return ((float)outputRange/(float)inputRange)*(value-(float)offset);
//return 1.0;
} }
/************************************************************************** /**************************************************************************
@ -113,9 +112,9 @@ float convertData(int inputRange, int outputRange, int offset, float value)
**************************************************************************/ **************************************************************************/
float constrainf(float amt, int low, int high) float constrainf(float amt, int low, int high)
{ {
if (amt < low) if (amt < (float)low)
return (float)low; return (float)low;
else if (amt > high) else if (amt > (float)high)
return (float)high; return (float)high;
else else
return amt; return amt;
@ -313,7 +312,7 @@ void pidUAVcore(pidProfile_t *pidProfile, pidProfileBuff_t *pidProfileBuff,
// limit maximum integrator value to prevent WindUp - accumulating extreme values when system is saturated. // limit maximum integrator value to prevent WindUp - accumulating extreme values when system is saturated.
// I coefficient (I) moved before integration to make limiting independent from PID settings // I coefficient (I) moved before integration to make limiting independent from PID settings
ITerm = constrainf(ITerm, -PID_MAX_I, PID_MAX_I); ITerm = constrainf(ITerm, -(int)PID_MAX_I, (int)PID_MAX_I);
// Anti windup protection // Anti windup protection
if (motorLimitReached) if (motorLimitReached)
@ -363,8 +362,9 @@ void pidUAVcore(pidProfile_t *pidProfile, pidProfileBuff_t *pidProfileBuff,
{ {
ITerm = 0; ITerm = 0;
pidProfileBuff->lastITerm[axis] = 0; pidProfileBuff->lastITerm[axis] = 0;
pidProfileBuff->ITermLimit[axis] = 0;
} }
pidProfile->PID_Out[axis] = constrainf(PTerm + ITerm + DTerm, -pidProfile->pid_out_limit, pidProfile->pid_out_limit); pidProfile->PID_Out[axis] = constrainf(PTerm + ITerm + DTerm, -(int)pidProfile->pid_out_limit, (int)pidProfile->pid_out_limit);
} }
/************************************************************************** /**************************************************************************