From 767c8d28dae96ad41ab3b4dd333b4004e9b5f9ca Mon Sep 17 00:00:00 2001 From: prot Date: Mon, 20 Dec 2004 15:12:39 +0000 Subject: Adding coefs which are specific to linefol mode --- n/line-follower/src/speed.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'n/line-follower/src') diff --git a/n/line-follower/src/speed.c b/n/line-follower/src/speed.c index e23c52d..8eaa9ba 100644 --- a/n/line-follower/src/speed.c +++ b/n/line-follower/src/speed.c @@ -31,6 +31,9 @@ extern uint8_t motor_mode; /** Statistics about pid components. */ extern int16_t pid_pid,pid_p,pid_i,pid_d +/** Coefs for linefol mode. */ +extern uint16_t line_kp,line_ki,line_kd + /** Maximum value the pwm can reach (defined by the avr configuration). */ #define PWM_MAX 255 /** Maximum value for the pwm in linefol mode (controls avg speed). */ @@ -187,9 +190,9 @@ speed_compute_linefol_pwm (void) linepos_int = -linepos_int_max; /* Compute PI. */ /* 16b = 15b + 15b */ - pwm = dsp_mul_i16f88 (e, speed_kp) /* 15b = 10b * 5.8b */ - + dsp_mul_i16f88 (linepos_int, speed_ki) /* 15b = 11b * 4.8b */ - + dsp_mul_i16f88 (linepos_der, speed_kd); /* 15b = 11b * 4.8b */ + pwm = dsp_mul_i16f88 (e, line_kp) /* 15b = 10b * 5.8b */ + + dsp_mul_i16f88 (linepos_int, line_ki) /* 15b = 11b * 4.8b */ + + dsp_mul_i16f88 (linepos_der, line_kd); /* 15b = 11b * 4.8b */ pid_p = e; pid_i = linepos_int; -- cgit v1.2.3