From aedc955d400dde998fdead489afa9956fa6fd4ef Mon Sep 17 00:00:00 2001 From: prot Date: Sat, 11 Dec 2004 17:35:54 +0000 Subject: Making interface with linesensor.c --- n/line-follower/src/main.c | 2 +- n/line-follower/src/speed.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/n/line-follower/src/main.c b/n/line-follower/src/main.c index f0059f9..a8aceb2 100644 --- a/n/line-follower/src/main.c +++ b/n/line-follower/src/main.c @@ -108,7 +108,7 @@ main_loop (void) postrack_update (); motor_timer_2 = timer_read (); /* Speed control. */ - if (motor_mode = 3) + if (motor_mode == 3) { speed_compute_linefol_pwm (); } diff --git a/n/line-follower/src/speed.c b/n/line-follower/src/speed.c index a2f2c54..1a66486 100644 --- a/n/line-follower/src/speed.c +++ b/n/line-follower/src/speed.c @@ -23,6 +23,8 @@ * * }}} */ +#include "linesensor.c" + /** 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) */ @@ -31,6 +33,9 @@ int16_t linefol_max_pwm = 80; #define N_LINEPOS_DER_TAB 8 // max : 256 int16_t linepos_der_tab[N_LINEPOS_DER_TAB]; uint8_t linepos_der_index; +/** Attenuation for filtering the derivate term */ +#define K_ATT_LINEPOS_DER 0.95 + /** Actual speed. */ int8_t speed_left, speed_right; /** Wanted speed. */ @@ -49,6 +54,8 @@ int16_t speed_left_e_old, speed_right_e_old; uint16_t speed_kp = 2 * 255; /** I coeficients. 4.8 fixed point format. */ uint16_t speed_ki = 1 * 255; +/** D coeficient. 4.8 fixed point format. */ +uint16_t speed_kd = 1 * 255; /* +AutoDec */ -- cgit v1.2.3