From: Keith Packard Date: Wed, 4 Jan 2012 04:46:25 +0000 (-0800) Subject: altos: flush stdout when fifo from arduino serial port is empty X-Git-Tag: 1.0.9.4~58 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;ds=inline;h=c6821ae734a7efaf2e069f6c5edf9605a9dbe125;p=fw%2Faltos altos: flush stdout when fifo from arduino serial port is empty This avoids leaving bytes pending inside altos Signed-off-by: Keith Packard --- diff --git a/src/core/ao.h b/src/core/ao.h index 494993f1..8c5335c4 100644 --- a/src/core/ao.h +++ b/src/core/ao.h @@ -943,6 +943,10 @@ ao_serial_init(void); #endif #if HAS_SERIAL_0 + +extern volatile __xdata struct ao_fifo ao_usart0_rx_fifo; +extern volatile __xdata struct ao_fifo ao_usart0_tx_fifo; + void ao_serial0_rx0_isr(void) ao_arch_interrupt(2); diff --git a/src/teleshield-v0.1/ao_ardu_serial.c b/src/teleshield-v0.1/ao_ardu_serial.c index 7d4dc0db..7ff859af 100644 --- a/src/teleshield-v0.1/ao_ardu_serial.c +++ b/src/teleshield-v0.1/ao_ardu_serial.c @@ -23,6 +23,8 @@ ao_ardu_serial_recv(void) char c; for (;;) { + if (ao_fifo_empty(ao_usart0_rx_fifo)) + flush(); c = ao_serial0_getchar(); putchar (c); }