Skip to content
Snippets Groups Projects
Commit 8e227175 authored by Bernard Blackham's avatar Bernard Blackham
Browse files

Make a delay before testing home sensors

parent 37ee298c
No related merge requests found
...@@ -93,16 +93,19 @@ bool is_motor(u8 slot) { ...@@ -93,16 +93,19 @@ bool is_motor(u8 slot) {
return motor_here(slot); return motor_here(slot);
} }
bool left_home(u8 slot) { bool start_motor(u8 slot) {
u16 i; u16 i;
u8 r = slot%10; u8 r = slot%10;
if (r >= 5) r--; if (r >= 5) r--;
r = 1 << (r-1); r = 1 << (r-1);
motor_on(slot);
delay(100);
for (i = 0; i < 1000; i++) { for (i = 0; i < 1000; i++) {
if ((home_sensors & r) != 0) return 1; if ((home_sensors & r) != 0) return 1;
delay(1); delay(1);
} }
/* it never left */ /* it never left */
motors_off();
return 0; return 0;
} }
...@@ -113,6 +116,7 @@ bool back_home(u8 slot) { ...@@ -113,6 +116,7 @@ bool back_home(u8 slot) {
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
if ((home_sensors & r) == 0) return 1; if ((home_sensors & r) == 0) return 1;
delay(1);
} }
/* it never arrived */ /* it never arrived */
...@@ -134,13 +138,7 @@ bool motor_overcurrent() { ...@@ -134,13 +138,7 @@ bool motor_overcurrent() {
u8 dispense_motor(u8 slot) { u8 dispense_motor(u8 slot) {
if (!is_motor(slot)) return MOTOR_NOSLOT; if (!is_motor(slot)) return MOTOR_NOSLOT;
if (!start_motor(slot)) return MOTOR_HOME_FAIL;
motor_on(slot);
if (!left_home(slot)) {
motors_off();
return MOTOR_HOME_FAIL;
}
while (1) { while (1) {
if (motor_overcurrent()) { if (motor_overcurrent()) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment