Timeout error may be recoverable but may not in some situations.
For safety it is handled as a real error to start keyboard
recognition again.
} else {
// should not take more than 1ms
if (timer_start != t && (uint8_t)(timer_start + 1) != t) {
+ ibmpc_isr_debug = isr_state;
ibmpc_error = IBMPC_ERR_TIMEOUT;
- //goto ERROR;
- // timeout error recovery by clearing isr_state?
- timer_start = t;
- isr_state = 0x8000;
+ goto ERROR;
+
+ // timeout error recovery - start receiving new data
+ // it seems to work somehow but may not under unstable situation
+ //timer_start = t;
+ //isr_state = 0x8000;
}
}