From 4f9dcfd9c4ac873c29527884e85b75d4cd42413a Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 10 May 2010 08:42:25 +0200 Subject: digital/io: use the clamp command --- digital/io/src/ai_loader_cb.c | 4 ++-- digital/io/src/bot.h | 3 +++ digital/io/src/mimot.c | 24 ++++++++++++++++++++++++ digital/io/src/mimot.h | 8 ++++++++ digital/io/tools/test_simu_control.py | 8 ++++---- 5 files changed, 41 insertions(+), 6 deletions(-) diff --git a/digital/io/src/ai_loader_cb.c b/digital/io/src/ai_loader_cb.c index f759b417..a02f8b22 100644 --- a/digital/io/src/ai_loader_cb.c +++ b/digital/io/src/ai_loader_cb.c @@ -159,8 +159,8 @@ ai__LOADER_DOWN__loader_up (void) fsm_branch_t ai__LOADER_DOWN__loader_element (void) { - mimot_move_motor0_absolute (BOT_CLAMP_STROKE_STEP, BOT_CLAMP_SPEED); - mimot_move_motor1_absolute (BOT_CLAMP_STROKE_STEP, BOT_CLAMP_SPEED); + mimot_motor0_clamp (BOT_CLAMP_SPEED, BOT_CLAMP_PWM); + mimot_motor1_clamp (BOT_CLAMP_SPEED, BOT_CLAMP_PWM); return ai_next (LOADER_DOWN, loader_element); } diff --git a/digital/io/src/bot.h b/digital/io/src/bot.h index 4e058dcc..f4dfc00a 100644 --- a/digital/io/src/bot.h +++ b/digital/io/src/bot.h @@ -89,6 +89,9 @@ /** Clamp find zero speed. */ #define BOT_CLAMP_ZERO_SPEED 0x10 +/** Clamp open loop PWM. */ +#define BOT_CLAMP_PWM 0x100 + /** * Definition of the colors. */ diff --git a/digital/io/src/mimot.c b/digital/io/src/mimot.c index 96746f51..4192cb9e 100644 --- a/digital/io/src/mimot.c +++ b/digital/io/src/mimot.c @@ -157,3 +157,27 @@ mimot_motor1_zero_position (int8_t speed) twi_master_send (2); } +void +mimot_motor0_clamp (int8_t speed, int16_t pwm) +{ + uint8_t *buffer = twi_master_get_buffer (MIMOT_SLAVE); + buffer[0] = 'l'; + buffer[1] = 0; + buffer[2] = speed; + buffer[3] = v16_to_v8 (pwm, 1); + buffer[4] = v16_to_v8 (pwm, 0); + twi_master_send (5); +} + +void +mimot_motor1_clamp (int8_t speed, int16_t pwm) +{ + uint8_t *buffer = twi_master_get_buffer (MIMOT_SLAVE); + buffer[0] = 'l'; + buffer[1] = 1; + buffer[2] = speed; + buffer[3] = v16_to_v8 (pwm, 1); + buffer[4] = v16_to_v8 (pwm, 0); + twi_master_send (5); +} + diff --git a/digital/io/src/mimot.h b/digital/io/src/mimot.h index 1eb490c6..98709162 100644 --- a/digital/io/src/mimot.h +++ b/digital/io/src/mimot.h @@ -84,4 +84,12 @@ mimot_motor0_zero_position (int8_t speed); void mimot_motor1_zero_position (int8_t speed); +/** Clamp motor0. */ +void +mimot_motor0_clamp (int8_t speed, int16_t pwm); + +/** Clamp motor1. */ +void +mimot_motor1_clamp (int8_t speed, int16_t pwm); + #endif /* mimot_h */ diff --git a/digital/io/tools/test_simu_control.py b/digital/io/tools/test_simu_control.py index 64c856aa..7145ed1a 100644 --- a/digital/io/tools/test_simu_control.py +++ b/digital/io/tools/test_simu_control.py @@ -62,11 +62,11 @@ class TestSimuControl (TestSimu): def clamp_command (self): if self.clamp_var.get (): - pos = 1720 + self.mimot.clamp ('a0', 0x60, 0x100) + self.mimot.clamp ('a1', 0x60, 0x100) else: - pos = 0 - self.mimot.goto_pos ('a0', pos) - self.mimot.goto_pos ('a1', pos) + self.mimot.goto_pos ('a0', 0) + self.mimot.goto_pos ('a1', 0) def elevator_command (self): if self.elevator_var.get (): -- cgit v1.2.3