summaryrefslogtreecommitdiff
path: root/n/line-follower/src
diff options
context:
space:
mode:
authorprot2004-12-20 15:12:39 +0000
committerprot2004-12-20 15:12:39 +0000
commit767c8d28dae96ad41ab3b4dd333b4004e9b5f9ca (patch)
treebbac87211766e091490855d91ea22c0c1cf790ad /n/line-follower/src
parent8b9bbc5af08793dcf9869703a81381ca1b97884c (diff)
Adding coefs which are specific to linefol mode
Diffstat (limited to 'n/line-follower/src')
-rw-r--r--n/line-follower/src/speed.c9
1 files changed, 6 insertions, 3 deletions
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;