Browse Source

Remove clear matrix on ADB recv error

led_matrix
tmk 10 years ago
parent
commit
cb434cfebc
2 changed files with 4 additions and 3 deletions
  1. 1
    3
      converter/adb_usb/matrix.c
  2. 3
    0
      protocol/adb.c

+ 1
- 3
converter/adb_usb/matrix.c View File

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

+ 3
- 0
protocol/adb.c View File

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