Merge pull request #19 from pfalcon/keypad-uart-exit
cmd-keypad: Exit also on key press on serial/USB connection.
This commit is contained in:
commit
176f914b51
3 changed files with 15 additions and 2 deletions
|
@ -59,9 +59,9 @@ int cmd_keypad(int argc, char **argv)
|
||||||
int end = 0;
|
int end = 0;
|
||||||
uint32_t key_state[18] = {0};
|
uint32_t key_state[18] = {0};
|
||||||
|
|
||||||
printf("Press %c on keypad to exit\n",
|
printf("Press %c on keypad or any key on serial to exit\n",
|
||||||
key_vals[ARRAY_SIZE(key_vals) - 2]);
|
key_vals[ARRAY_SIZE(key_vals) - 2]);
|
||||||
while (!end) {
|
while (!end && !serial_available()) {
|
||||||
int key;
|
int key;
|
||||||
|
|
||||||
for (key = 0; key < (ARRAY_SIZE(key_vals) - 1); key++) {
|
for (key = 0; key < (ARRAY_SIZE(key_vals) - 1); key++) {
|
||||||
|
|
|
@ -9,6 +9,7 @@ void serial_puth(uint32_t hex, int digits); /* Put hex */
|
||||||
void serial_write(const void *d, int bytes);
|
void serial_write(const void *d, int bytes);
|
||||||
|
|
||||||
uint8_t serial_getc(void);
|
uint8_t serial_getc(void);
|
||||||
|
int serial_available(void);
|
||||||
int serial_print_hex(const void *bfr, int count);
|
int serial_print_hex(const void *bfr, int count);
|
||||||
int serial_read(void *data, int bytes);
|
int serial_read(void *data, int bytes);
|
||||||
|
|
||||||
|
|
12
serial.c
12
serial.c
|
@ -100,6 +100,12 @@ uint8_t serial_getc(void)
|
||||||
return uart_getreg(UART_RBR);
|
return uart_getreg(UART_RBR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if there's pending received char */
|
||||||
|
int serial_available(void)
|
||||||
|
{
|
||||||
|
return uart_getreg(UART_LSR) & 0x01;
|
||||||
|
}
|
||||||
|
|
||||||
int serial_puts(const void *s)
|
int serial_puts(const void *s)
|
||||||
{
|
{
|
||||||
const char *str = s;
|
const char *str = s;
|
||||||
|
@ -279,6 +285,12 @@ uint8_t serial_getc(void)
|
||||||
return recv_bfr[recv_offset++];
|
return recv_bfr[recv_offset++];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int serial_available(void)
|
||||||
|
{
|
||||||
|
usb_handle_irqs(1);
|
||||||
|
return recv_size != 0;
|
||||||
|
}
|
||||||
|
|
||||||
int serial_puts(const void *s)
|
int serial_puts(const void *s)
|
||||||
{
|
{
|
||||||
const char *str = s;
|
const char *str = s;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue