summaryrefslogtreecommitdiff
path: root/digital/io-hub/src/robospierre
diff options
context:
space:
mode:
authorNicolas Schodet2011-05-22 18:42:06 +0200
committerNicolas Schodet2011-05-22 19:33:09 +0200
commit447138614e45686cff0bf55a351610c1c108168a (patch)
treeb8a2d1e01787a453414cca5cd34a763ce717c38a /digital/io-hub/src/robospierre
parentf6601c1f928cc28a88bcb8921ca927453d53a1f2 (diff)
digital/io-hub: update clamp positions and pwm values
Diffstat (limited to 'digital/io-hub/src/robospierre')
-rw-r--r--digital/io-hub/src/robospierre/bot.h75
-rw-r--r--digital/io-hub/src/robospierre/clamp.c17
2 files changed, 57 insertions, 35 deletions
diff --git a/digital/io-hub/src/robospierre/bot.h b/digital/io-hub/src/robospierre/bot.h
index a986c015..5f9d177a 100644
--- a/digital/io-hub/src/robospierre/bot.h
+++ b/digital/io-hub/src/robospierre/bot.h
@@ -53,30 +53,49 @@
# define BOT_CLAMP_SLOT_BACK_MIDDLE_ELEVATION_STEP (0x3b0b / 2)
# define BOT_CLAMP_SLOT_BACK_TOP_ELEVATION_STEP 0x3b0b
# define BOT_CLAMP_SLOT_SIDE_ELEVATION_STEP 0x3b0b
-# define BOT_CLAMP_BAY_FRONT_LEAVE_ELEVATION_STEP (0x3b0b / 3)
-# define BOT_CLAMP_BAY_BACK_LEAVE_ELEVATION_STEP (0x3b0b / 3)
+# define BOT_CLAMP_BAY_FRONT_LEAVE_ELEVATION_STEP (0x3b0b / 2 + 1000)
+# define BOT_CLAMP_BAY_BACK_LEAVE_ELEVATION_STEP (0x3b0b / 2 + 1000)
# define BOT_CLAMP_BAY_SIDE_ENTER_LEAVE_ELEVATION_STEP (0x3b0b / 2)
-# define BOT_CLAMP_BAY_FRONT_ROTATION_STEP 0
-# define BOT_CLAMP_BAY_BACK_ROTATION_STEP 0x11c6
-# define BOT_CLAMP_BAY_SIDE_ROTATION_STEP (0x11c6 / 2)
+# define BOT_CLAMP_SLOT_FRONT_BOTTOM_ROTATION_STEP 0
+# define BOT_CLAMP_SLOT_FRONT_MIDDLE_ROTATION_STEP 0
+# define BOT_CLAMP_SLOT_FRONT_TOP_ROTATION_STEP 0
+# define BOT_CLAMP_SLOT_BACK_BOTTOM_ROTATION_STEP 0x11c6
+# define BOT_CLAMP_SLOT_BACK_MIDDLE_ROTATION_STEP 0x11c6
+# define BOT_CLAMP_SLOT_BACK_TOP_ROTATION_STEP 0x11c6
+
+# define BOT_CLAMP_BAY_FRONT_ROTATION_STEP \
+ BOT_CLAMP_SLOT_FRONT_MIDDLE_ROTATION_STEP
+# define BOT_CLAMP_BAY_BACK_ROTATION_STEP \
+ BOT_CLAMP_SLOT_BACK_MIDDLE_ROTATION_STEP
+# define BOT_CLAMP_BAY_SIDE_ROTATION_STEP \
+ (BOT_CLAMP_BAY_BACK_ROTATION_STEP / 2)
#else /* !HOST */
# define BOT_CLAMP_SLOT_FRONT_BOTTOM_ELEVATION_STEP 0
-# define BOT_CLAMP_SLOT_FRONT_MIDDLE_ELEVATION_STEP 0x1d83
-# define BOT_CLAMP_SLOT_FRONT_TOP_ELEVATION_STEP 0x3288
-# define BOT_CLAMP_SLOT_BACK_BOTTOM_ELEVATION_STEP 0
-# define BOT_CLAMP_SLOT_BACK_MIDDLE_ELEVATION_STEP 0x1d83
-# define BOT_CLAMP_SLOT_BACK_TOP_ELEVATION_STEP 0x3288
-# define BOT_CLAMP_SLOT_SIDE_ELEVATION_STEP 0x3288
-# define BOT_CLAMP_BAY_FRONT_LEAVE_ELEVATION_STEP 0x1d83
-# define BOT_CLAMP_BAY_BACK_LEAVE_ELEVATION_STEP 0x1d83
-# define BOT_CLAMP_BAY_SIDE_ENTER_LEAVE_ELEVATION_STEP 0x1d83
-
-# define BOT_CLAMP_BAY_FRONT_ROTATION_STEP 0
-# define BOT_CLAMP_BAY_BACK_ROTATION_STEP 0x10e2
-# define BOT_CLAMP_BAY_SIDE_ROTATION_STEP 0x820
+# define BOT_CLAMP_SLOT_FRONT_MIDDLE_ELEVATION_STEP (0x1da7 - 250)
+# define BOT_CLAMP_SLOT_FRONT_TOP_ELEVATION_STEP 0x34f7
+# define BOT_CLAMP_SLOT_BACK_BOTTOM_ELEVATION_STEP 0x0169
+# define BOT_CLAMP_SLOT_BACK_MIDDLE_ELEVATION_STEP (0x1f03 - 250)
+# define BOT_CLAMP_SLOT_BACK_TOP_ELEVATION_STEP 0x3610
+# define BOT_CLAMP_SLOT_SIDE_ELEVATION_STEP 0x3729
+# define BOT_CLAMP_BAY_FRONT_LEAVE_ELEVATION_STEP 0x1da7
+# define BOT_CLAMP_BAY_BACK_LEAVE_ELEVATION_STEP 0x1f03
+# define BOT_CLAMP_BAY_SIDE_ENTER_LEAVE_ELEVATION_STEP ((0x1da7 + 0x1f03) / 2)
+
+# define BOT_CLAMP_SLOT_FRONT_BOTTOM_ROTATION_STEP 0
+# define BOT_CLAMP_SLOT_FRONT_MIDDLE_ROTATION_STEP 0
+# define BOT_CLAMP_SLOT_FRONT_TOP_ROTATION_STEP 0
+# define BOT_CLAMP_SLOT_BACK_BOTTOM_ROTATION_STEP 0x10ce
+# define BOT_CLAMP_SLOT_BACK_MIDDLE_ROTATION_STEP ((0x10ce + 0x10e2) / 2)
+# define BOT_CLAMP_SLOT_BACK_TOP_ROTATION_STEP 0x10e2
+
+# define BOT_CLAMP_BAY_FRONT_ROTATION_STEP \
+ BOT_CLAMP_SLOT_FRONT_MIDDLE_ROTATION_STEP
+# define BOT_CLAMP_BAY_BACK_ROTATION_STEP \
+ BOT_CLAMP_SLOT_BACK_MIDDLE_ROTATION_STEP
+# define BOT_CLAMP_BAY_SIDE_ROTATION_STEP 0x816
#endif /* !HOST */
@@ -89,14 +108,16 @@
#define BOT_PWM_DOOR_BACK_BOTTOM 3
#define BOT_PWM_DOOR_BACK_TOP 4
-#define BOT_PWM_CLAMP_OPEN_TIME 225
-#define BOT_PWM_CLAMP_OPEN 0x3ff, 225, 0
-#define BOT_PWM_CLAMP_CLOSE_TIME 225
-#define BOT_PWM_CLAMP_CLOSE -0x3ff, 225, 0
-
-#define BOT_PWM_DOOR_OPEN_TIME 225
-#define BOT_PWM_DOOR_OPEN 0x3ff, 225, 0
-#define BOT_PWM_DOOR_CLOSE_TIME 225
-#define BOT_PWM_DOOR_CLOSE -0x3ff, 225, 0
+#define BOT_PWM_CLAMP_OPEN_TIME 75
+#define BOT_PWM_CLAMP_OPEN 0x3ff, 75, 0
+#define BOT_PWM_CLAMP_CLOSE_TIME 75
+#define BOT_PWM_CLAMP_CLOSE -0x3ff, 75, 0
+
+#define BOT_PWM_DOOR_OPEN_TIME 12
+#define BOT_PWM_DOOR_OPEN 0x3ff, 37, 0x55
+#define BOT_PWM_DOOR_CLOSE_TIME 50
+#define BOT_PWM_DOOR_CLOSE(slot) \
+ -0x3ff, 50, ((slot == CLAMP_SLOT_FRONT_BOTTOM \
+ || slot == CLAMP_SLOT_BACK_BOTTOM) ? -0x100 : -0x180)
#endif /* bot_h */
diff --git a/digital/io-hub/src/robospierre/clamp.c b/digital/io-hub/src/robospierre/clamp.c
index 583cadb5..b7c85250 100644
--- a/digital/io-hub/src/robospierre/clamp.c
+++ b/digital/io-hub/src/robospierre/clamp.c
@@ -130,17 +130,17 @@ struct clamp_t clamp_global;
/** Clamp positions. */
static const uint16_t clamp_pos[][2] = {
{ BOT_CLAMP_SLOT_FRONT_BOTTOM_ELEVATION_STEP,
- BOT_CLAMP_BAY_FRONT_ROTATION_STEP },
+ BOT_CLAMP_SLOT_FRONT_BOTTOM_ROTATION_STEP },
{ BOT_CLAMP_SLOT_FRONT_MIDDLE_ELEVATION_STEP,
- BOT_CLAMP_BAY_FRONT_ROTATION_STEP },
+ BOT_CLAMP_SLOT_FRONT_MIDDLE_ROTATION_STEP },
{ BOT_CLAMP_SLOT_FRONT_TOP_ELEVATION_STEP,
- BOT_CLAMP_BAY_FRONT_ROTATION_STEP },
+ BOT_CLAMP_SLOT_FRONT_TOP_ROTATION_STEP },
{ BOT_CLAMP_SLOT_BACK_BOTTOM_ELEVATION_STEP,
- BOT_CLAMP_BAY_BACK_ROTATION_STEP },
+ BOT_CLAMP_SLOT_BACK_BOTTOM_ROTATION_STEP },
{ BOT_CLAMP_SLOT_BACK_MIDDLE_ELEVATION_STEP,
- BOT_CLAMP_BAY_BACK_ROTATION_STEP },
+ BOT_CLAMP_SLOT_BACK_MIDDLE_ROTATION_STEP },
{ BOT_CLAMP_SLOT_BACK_TOP_ELEVATION_STEP,
- BOT_CLAMP_BAY_BACK_ROTATION_STEP },
+ BOT_CLAMP_SLOT_BACK_TOP_ROTATION_STEP },
{ BOT_CLAMP_SLOT_SIDE_ELEVATION_STEP,
BOT_CLAMP_BAY_SIDE_ROTATION_STEP },
{ BOT_CLAMP_BAY_FRONT_LEAVE_ELEVATION_STEP,
@@ -336,7 +336,8 @@ FSM_TRANS (CLAMP_GOING_IDLE, clamp_move_success, CLAMP_IDLE)
FSM_TRANS (CLAMP_IDLE, clamp_new_element, CLAMP_TAKING_DOOR_CLOSING)
{
- pwm_set_timed (clamp_slot_door[ctx.pos_new], BOT_PWM_DOOR_CLOSE);
+ pwm_set_timed (clamp_slot_door[ctx.pos_new],
+ BOT_PWM_DOOR_CLOSE (ctx.pos_new));
return FSM_NEXT (CLAMP_IDLE, clamp_new_element);
}
@@ -524,7 +525,7 @@ FSM_TRANS (CLAMP_MOVE_DST_ROUTING, clamp_elevation_rotation_success,
if (clamp_slot_door[ctx.pos_current] != 0xff)
{
pwm_set_timed (clamp_slot_door[ctx.pos_current],
- BOT_PWM_DOOR_CLOSE);
+ BOT_PWM_DOOR_CLOSE (ctx.pos_current));
return FSM_NEXT (CLAMP_MOVE_DST_ROUTING,
clamp_elevation_rotation_success,
done_close_door);