@ -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;