From 0652c9a30a33b3b07f1852e23b9d2e41f3638c99 Mon Sep 17 00:00:00 2001 From: cohensol Date: Sun, 13 May 2007 21:37:51 +0000 Subject: Modification de l'algo de bornage des valeurs Modification des bornes MIN et MAX pour les servos --- n/es-2007/src/servo_motor.c | 19 +++++++++++++------ n/es-2007/src/servo_motor.h | 26 ++++++++++++++++++++------ 2 files changed, 33 insertions(+), 12 deletions(-) (limited to 'n') diff --git a/n/es-2007/src/servo_motor.c b/n/es-2007/src/servo_motor.c index 84e4d80..5334f9e 100644 --- a/n/es-2007/src/servo_motor.c +++ b/n/es-2007/src/servo_motor.c @@ -41,7 +41,7 @@ #define SRVM_TOTEML_PIN 3 /* first totem */ #define SRVM_TOTEMR_PIN 2 /* second totem */ /** Table for the time spend by each servo in high position. */ -volatile uint8_t servo_time[3] = { SRVM_TRASH_POS_CLOSE, SRVM_RIGHT_POS_IN, SRVM_LEFT_POS_IN }; +volatile uint8_t servo_time[3] = { SRVM_TRASH_POS_START, SRVM_RIGHT_POS_START, SRVM_LEFT_POS_START }; /** Different states of this module. */ #define SRVM_STATE_SLEEP 0 @@ -82,19 +82,26 @@ servo_motor_set_pos (uint8_t servo_mask, uint8_t servo_pos) if (servo_mask & _BV (num)) { /* Set the value and bound it */ + if (servo_pos < SRVM_TRASH_POS_MIN) + servo_pos = SRVM_TRASH_POS_MIN; + if (servo_pos > SRVM_TRASH_POS_MAX) + servo_pos = SRVM_TRASH_POS_MAX; + servo_time[num] = servo_pos; - /* Trash */ + /* + // Trash if (num == 0) UTILS_BOUND (servo_time[num], SRVM_TRASH_POS_OPEN, SRVM_TRASH_POS_CLOSE); - /* Totem1 */ + // Totem1 else if (num == 1) UTILS_BOUND (servo_time[num], SRVM_RIGHT_POS_OUT, SRVM_RIGHT_POS_IN); - /* Totem Left */ + // Totem Left else if (num == 2) - UTILS_BOUND (servo_time[num], SRVM_LEFT_POS_IN, - SRVM_LEFT_POS_OUT); + UTILS_BOUND (servo_time[num], SRVM_LEFT_POS_OUT, + SRVM_LEFT_POS_IN ); + */ } } diff --git a/n/es-2007/src/servo_motor.h b/n/es-2007/src/servo_motor.h index 455ce4d..7b79c3e 100644 --- a/n/es-2007/src/servo_motor.h +++ b/n/es-2007/src/servo_motor.h @@ -30,12 +30,26 @@ #include "common.h" /** All the states used to comunicate with this module. */ -#define SRVM_LEFT_POS_IN 95 -#define SRVM_LEFT_POS_OUT 130 -#define SRVM_RIGHT_POS_IN 78 -#define SRVM_RIGHT_POS_OUT 45 -#define SRVM_TRASH_POS_OPEN 68 /* 44 */ -#define SRVM_TRASH_POS_CLOSE 100 /* 64 */ +#define SRVM_LEFT_POS_IN 32 +#define SRVM_LEFT_POS_OUT 140 +#define SRVM_RIGHT_POS_IN 32 +#define SRVM_RIGHT_POS_OUT 140 +#define SRVM_TRASH_POS_OPEN 32 +#define SRVM_TRASH_POS_CLOSE 140 + +#define SRVM_TRASH_POS_MIN 32 +#define SRVM_TRASH_POS_MAX 140 +#define SRVM_TRASH_POS_START 80 + +#define SRVM_RIGHT_POS_MIN 32 +#define SRVM_RIGHT_POS_MAX 140 +#define SRVM_RIGHT_POS_START 80 + +#define SRVM_LEFT_POS_MIN 32 +#define SRVM_LEFT_POS_MAX 140 +#define SRVM_LEFT_POS_START 80 + + /** Init the servo motor system. */ void servo_motor_init (void); -- cgit v1.2.3