/* request to send */
clock_lo();
- data_lo();
_delay_us(100);
/* start bit [1] */
+ data_lo();
clock_hi();
WAIT(clock_lo, 15000, 1);
/* data [2-9] */
return 1;
ERROR:
+ /* inhibit device to send */
+ data_hi();
+ clock_lo();
return 0;
}
bool parity = true;
ps2_error = 0;
- /* cancel to sync */
+ /* terminate a transmission if we have */
clock_lo();
_delay_us(100);
data_hi();
/* start bit [1] */
- WAIT(clock_lo, 20000, 1);
+ WAIT(clock_lo, 2000, 1); // How long should we wait?
WAIT(data_lo, 1, 2);
WAIT(clock_hi, 50, 3);
return data;
ERROR:
+ /* inhibit device to send */
+ data_hi();
+ clock_lo();
return 0;
}