BV UART: add ability to exit in transceive command
This commit is contained in:
parent
2b67bd9608
commit
d8f04beb3f
|
@ -322,7 +322,7 @@ static void busvoodoo_uart_command_transceive(void* argument)
|
|||
printf("press 5 times escape to exit\n");
|
||||
char last_c = 0; // last user character received
|
||||
uint8_t esc_count = 0; // number of times escape has press received
|
||||
while (esc_count<5) { // check for escape sequence
|
||||
while (true) { // check for escape sequence
|
||||
if (user_input_available) { // check if user wants to transmit something
|
||||
char c = user_input_get(); // get user input
|
||||
if (0x1b==c) { // user pressed escape
|
||||
|
@ -332,8 +332,15 @@ static void busvoodoo_uart_command_transceive(void* argument)
|
|||
esc_count++; // increment escape count
|
||||
}
|
||||
last_c = c; // remember key press
|
||||
usart_send_blocking(USART(BUSVOODOO_USART_ID), c); // send user character
|
||||
busvoodoo_led_red_pulse(BUSVOODOO_LED_PULSE); // enable red LED to show transmission
|
||||
if (esc_count<5) { // check for escape sequence
|
||||
while ((0==(USART_SR(USART(BUSVOODOO_USART_ID)) & USART_SR_TXE) && !user_input_available)); // wait for transmit buffer to be empty
|
||||
if (USART_SR(USART(BUSVOODOO_USART_ID)) & USART_SR_TXE) { // we can send a character
|
||||
usart_send_blocking(USART(BUSVOODOO_USART_ID), c); // send user character
|
||||
busvoodoo_led_red_pulse(BUSVOODOO_LED_PULSE); // enable red LED to show transmission
|
||||
}
|
||||
} else { // user wants to exit
|
||||
break; // exit infinite loop
|
||||
}
|
||||
}
|
||||
if ((USART_SR(USART(BUSVOODOO_USART_ID)) & USART_SR_RXNE)) { // verify if data has been received
|
||||
char c = usart_recv(USART(BUSVOODOO_USART_ID)); // receive character
|
||||
|
|
Loading…
Reference in New Issue