|
@@ -210,7 +210,7 @@ static void rate_control_pid_sample(struct rc_pid_info *pinfo,
|
|
rate_control_pid_normalize(pinfo, mode->num_rates);
|
|
rate_control_pid_normalize(pinfo, mode->num_rates);
|
|
|
|
|
|
/* Compute the proportional, integral and derivative errors. */
|
|
/* Compute the proportional, integral and derivative errors. */
|
|
- err_prop = pinfo->target - pf;
|
|
|
|
|
|
+ err_prop = (pinfo->target << RC_PID_ARITH_SHIFT) - pf;
|
|
|
|
|
|
err_avg = spinfo->err_avg_sc >> pinfo->smoothing_shift;
|
|
err_avg = spinfo->err_avg_sc >> pinfo->smoothing_shift;
|
|
spinfo->err_avg_sc = spinfo->err_avg_sc - err_avg + err_prop;
|
|
spinfo->err_avg_sc = spinfo->err_avg_sc - err_avg + err_prop;
|