@@ -100,9 +100,7 @@ uint8_t matrix_scan(void) | |||
} else if (codes == 0xFFFF) { // power key release | |||
register_key(0xFF); | |||
} else if (key0 == 0xFF) { // error | |||
if (debug_matrix) print("adb_host_kbd_recv: ERROR(matrix cleared.)\n"); | |||
// clear matrix to unregister all keys | |||
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00; | |||
xprintf("adb_host_kbd_recv: ERROR(%02X)\n", codes); | |||
return key1; | |||
} else { | |||
register_key(key0); |
@@ -40,6 +40,7 @@ POSSIBILITY OF SUCH DAMAGE. | |||
#include <avr/io.h> | |||
#include <avr/interrupt.h> | |||
#include "adb.h" | |||
#include "debug.h" | |||
static inline void data_lo(void); | |||
@@ -93,6 +94,7 @@ uint16_t adb_host_kbd_recv(void) | |||
} | |||
if (!read_bit()) { // Startbit(1) | |||
// Service Request | |||
dprintf("Startbit ERROR\n"); | |||
return -2; | |||
} | |||
@@ -104,6 +106,7 @@ uint16_t adb_host_kbd_recv(void) | |||
sei(); | |||
if (stop) { | |||
dprintf("Stopbit ERROR\n"); | |||
return -3; | |||
} | |||
return data; |