summaryrefslogtreecommitdiff
path: root/digital
diff options
context:
space:
mode:
authorNicolas Schodet2010-05-10 08:42:25 +0200
committerNicolas Schodet2010-05-10 08:42:25 +0200
commit4f9dcfd9c4ac873c29527884e85b75d4cd42413a (patch)
tree23c1528d7eda35a80bad1fd688756a260829f661 /digital
parent2781ad249062dac90dd5b86da6b2d54bfa597e7e (diff)
digital/io: use the clamp command
Diffstat (limited to 'digital')
-rw-r--r--digital/io/src/ai_loader_cb.c4
-rw-r--r--digital/io/src/bot.h3
-rw-r--r--digital/io/src/mimot.c24
-rw-r--r--digital/io/src/mimot.h8
-rw-r--r--digital/io/tools/test_simu_control.py8
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 ():