X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm%2Fao_serial_stm.c;h=9959e460771d6fb67d0318e333aaca961cdfb036;hb=eee2ca7fa7fd77be8ca5806cad7e250053465048;hp=2568cf430fe5cb92eccc751ae463d2e8c8ccf796;hpb=44a503a8cf3778cad5469c592e8ccbae58e44b97;p=fw%2Faltos diff --git a/src/stm/ao_serial_stm.c b/src/stm/ao_serial_stm.c index 2568cf43..9959e460 100644 --- a/src/stm/ao_serial_stm.c +++ b/src/stm/ao_serial_stm.c @@ -70,6 +70,7 @@ _ao_usart_pollchar(struct ao_stm_usart *usart) uint8_t u; ao_fifo_remove(usart->rx_fifo,u); c = u; + ao_usb_putchar(c); ao_usb_flush(); } return c; } @@ -82,18 +83,20 @@ ao_usart_getchar(struct ao_stm_usart *usart) while ((c = _ao_usart_pollchar(usart)) == AO_READ_AGAIN) ao_sleep(&usart->rx_fifo); ao_arch_release_interrupts(); + ao_usb_putchar(c); ao_usb_flush(); return (char) c; } static inline uint8_t -_ao_usart_sleep(struct ao_stm_usart *usart) +_ao_usart_sleep_for(struct ao_stm_usart *usart, uint16_t timeout) { - return ao_sleep(&usart->rx_fifo); + return ao_sleep_for(&usart->rx_fifo, timeout); } void ao_usart_putchar(struct ao_stm_usart *usart, char c) { + ao_usb_putchar(c); ao_usb_flush(); ao_arch_block_interrupts(); while (ao_fifo_full(usart->tx_fifo)) ao_sleep(&usart->tx_fifo); @@ -217,9 +220,9 @@ _ao_serial1_pollchar(void) } uint8_t -_ao_serial1_sleep(void) +_ao_serial1_sleep_for(uint16_t timeout) { - return _ao_usart_sleep(&ao_stm_usart1); + return _ao_usart_sleep_for(&ao_stm_usart1, timeout); } void @@ -260,9 +263,9 @@ _ao_serial2_pollchar(void) } uint8_t -_ao_serial2_sleep(void) +_ao_serial2_sleep_for(uint16_t timeout) { - return _ao_usart_sleep(&ao_stm_usart2); + return _ao_usart_sleep_for(&ao_stm_usart2, timeout); } void @@ -303,9 +306,9 @@ _ao_serial3_pollchar(void) } uint8_t -_ao_serial3_sleep(void) +_ao_serial3_sleep_for(uint16_t timeout) { - return _ao_usart_sleep(&ao_stm_usart3); + return _ao_usart_sleep_for(&ao_stm_usart3, timeout); } void