summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcohensol2007-05-13 21:37:51 +0000
committercohensol2007-05-13 21:37:51 +0000
commit0652c9a30a33b3b07f1852e23b9d2e41f3638c99 (patch)
treed6c41e73493d372b0d900e793cca800902a546dd
parente2b42cb2933028d5a15466f2ee52c6c7480d1960 (diff)
Modification de l'algo de bornage des valeurs
Modification des bornes MIN et MAX pour les servos
-rw-r--r--n/es-2007/src/servo_motor.c19
-rw-r--r--n/es-2007/src/servo_motor.h26
2 files changed, 33 insertions, 12 deletions
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);