#endif
#define println(s) print_P(PSTR(s "\n"))
-#ifndef AVR_LIBC_PRINTF
-#define printf(f, ...) xprintf(f, ##__VA_ARGS__)
-#endif
-
/* for old name */
#define pdec(data) print_dec(data)
#define pdec16(data) print_dec(data)
if (code < 0x80) {
matrix_make(code);
} else {
- printf("unexpected scan code at INIT: %02X\n", code);
+ xprintf("unexpected scan code at INIT: %02X\n", code);
clear_keyboard();
}
state = INIT;
if (code < 0x80) {
matrix_make(code|0x80);
} else {
- printf("unexpected scan code at E0: %02X\n", code);
+ xprintf("unexpected scan code at E0: %02X\n", code);
clear_keyboard();
}
state = INIT;
if (code < 0x80) {
matrix_break(code);
} else {
- printf("unexpected scan code at F0: %02X\n", code);
+ xprintf("unexpected scan code at F0: %02X\n", code);
clear_keyboard();
}
state = INIT;
if (code < 0x80) {
matrix_break(code|0x80);
} else {
- printf("unexpected scan code at E0_F0: %02X\n", code);
+ xprintf("unexpected scan code at E0_F0: %02X\n", code);
clear_keyboard();
}
state = INIT;
if (ps2_error > PS2_ERR_STARTBIT3) {
uint8_t ret = ps2_host_send(PS2_RESEND);
- printf("Resend: %02X\n", ret);
+ xprintf("Resend: %02X\n", ret);
}
return 1;
}
WAIT(clock_hi, 50, 8);
WAIT(data_hi, 50, 9);
+ inhibit();
res = ps2_host_recv_response();
ERROR:
inhibit();
/* receive data when host want else inhibit communication */
uint8_t ps2_host_recv_response(void)
{
- // TODO:
// Command might take 20ms to response([3]p.21)
// TrackPoint might take 25ms ([5]2.7)
+ // 250 * 100us(wait for start bit in ps2_host_recv)
uint8_t data = 0;
- uint8_t try = 200;
- while (try-- && (data = ps2_host_recv())) ;
+ uint8_t try = 250;
+ do {
+ data = ps2_host_recv();
+ } while (try-- && ps2_error);
return data;
}
return data;
ERROR:
if (ps2_error > PS2_ERR_STARTBIT3) {
- printf("x%02X\n", ps2_error);
+ xprintf("x%02X\n", ps2_error);
}
inhibit();
return 0;