X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=ROM2%2Fmotors.c;h=a114490c8d9038bacc47bf2cfacd56178dd1f815;hb=080c85d87da93ba2472b0c90d17527838d668db2;hp=b0e4ee3cc3b27cdb43bbec9ba7b49260f34c6227;hpb=293827a53b325c2faffddcba380b6f0c19da802a;p=uccvend-snackrom.git diff --git a/ROM2/motors.c b/ROM2/motors.c index b0e4ee3..a114490 100644 --- a/ROM2/motors.c +++ b/ROM2/motors.c @@ -24,9 +24,13 @@ void motor_shift_send(u8 data) { else bclr_misc_output(A3800_MOTOR_DATA); + delay(1); + /* clock pulse */ bset((void*)&_io_ports[M6811_PORTA], PORTA_MOTOR_CLOCK); + delay(1); bclr((void*)&_io_ports[M6811_PORTA], PORTA_MOTOR_CLOCK); + delay(1); data = data << 1; } @@ -57,6 +61,7 @@ void motor_on(u8 slot) { bclr((void*)&_io_ports[M6811_PORTA], PORTA_MOTOR_CLOCK); bclr_changer_output(A3000_MOTOR_ROW_DISABLE); + bclr((void*)&_io_ports[M6811_PORTA], PORTA_MOTOR_COL_DISABLE); } void motors_off() { @@ -128,9 +133,12 @@ bool motor_overcurrent() { } u8 dispense_motor(u8 slot) { - if (!is_motor(slot)) return MOTOR_NOSLOT; + //if (!is_motor(slot)) return MOTOR_NOSLOT; motor_on(slot); + delay(1000); + motors_off(); + return MOTOR_SUCCESS; if (!left_home(slot)) { motors_off();