git.droids-corp.org
/
aversive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
french cup + idf cup
[aversive.git]
/
projects
/
microb2010
/
ballboard
/
state.c
diff --git
a/projects/microb2010/ballboard/state.c
b/projects/microb2010/ballboard/state.c
index
6c229a4
..
edcfb3a
100644
(file)
--- a/
projects/microb2010/ballboard/state.c
+++ b/
projects/microb2010/ballboard/state.c
@@
-166,9
+166,15
@@
static void state_do_eject(void)
blocked = 0;
while (1) {
blocked = 0;
while (1) {
+ /* move fork during ball ejection */
+ if ((us % 600) < 300)
+ fork_eject();
+ else
+ fork_pack();
/* no more balls (sensor is heavily filtered) */
/* no more balls (sensor is heavily filtered) */
- if (!sensor_get(S_LOW_BARRIER)) {
+ if (!sensor_get(S_LOW_BARRIER) &&
+ !sensor_get(S_HIGH_BARRIER)) {
STMCH_DEBUG("%s(): no more balls", __FUNCTION__);
break;
}
STMCH_DEBUG("%s(): no more balls", __FUNCTION__);
break;
}
@@
-186,6
+192,7
@@
static void state_do_eject(void)
break;
}
}
break;
}
}
+ fork_pack();
if (!blocked)
break;
if (!blocked)
break;
@@
-246,8
+253,21
@@
void state_machine(void)
case TAKE_FORK:
roller_off();
case TAKE_FORK:
roller_off();
- fork_mid();
- time_wait_ms(1300);
+ fork_mid1();
+ time_wait_ms(666);
+ fork_mid2();
+ time_wait_ms(666);
+ while (1) {
+ uint8_t packed;
+
+ fork_pack();
+ packed = WAIT_COND_OR_TIMEOUT(fork_is_packed(),
+ 500);
+ if (packed)
+ break;
+ fork_mid2();
+ time_wait_ms(200);
+ }
state_mode = OFF;
break;
state_mode = OFF;
break;