Remove clear matrix on ADB recv error

master
tmk 2013-10-04 15:03:42 +09:00
parent 7e8a85caad
commit cb434cfebc
2 changed files with 4 additions and 3 deletions

View File

@ -100,9 +100,7 @@ uint8_t matrix_scan(void)
} else if (codes == 0xFFFF) { // power key release } else if (codes == 0xFFFF) { // power key release
register_key(0xFF); register_key(0xFF);
} else if (key0 == 0xFF) { // error } else if (key0 == 0xFF) { // error
if (debug_matrix) print("adb_host_kbd_recv: ERROR(matrix cleared.)\n"); xprintf("adb_host_kbd_recv: ERROR(%02X)\n", codes);
// clear matrix to unregister all keys
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
return key1; return key1;
} else { } else {
register_key(key0); register_key(key0);

View File

@ -40,6 +40,7 @@ POSSIBILITY OF SUCH DAMAGE.
#include <avr/io.h> #include <avr/io.h>
#include <avr/interrupt.h> #include <avr/interrupt.h>
#include "adb.h" #include "adb.h"
#include "debug.h"
static inline void data_lo(void); static inline void data_lo(void);
@ -93,6 +94,7 @@ uint16_t adb_host_kbd_recv(void)
} }
if (!read_bit()) { // Startbit(1) if (!read_bit()) { // Startbit(1)
// Service Request // Service Request
dprintf("Startbit ERROR\n");
return -2; return -2;
} }
@ -104,6 +106,7 @@ uint16_t adb_host_kbd_recv(void)
sei(); sei();
if (stop) { if (stop) {
dprintf("Stopbit ERROR\n");
return -3; return -3;
} }
return data; return data;