From e7c72a826c1d9180bfe9dcd5c6eae6072dd8af3d Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Tue, 22 Oct 2013 19:44:58 +0200 Subject: [PATCH] uart_isr: fix interrupts clear --- software/libbase/uart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/libbase/uart.c b/software/libbase/uart.c index dc11d3e7..5b88569b 100644 --- a/software/libbase/uart.c +++ b/software/libbase/uart.c @@ -33,9 +33,11 @@ void uart_isr(void) if(stat & UART_EV_RX) { rx_buf[rx_produce] = uart_rxtx_read(); rx_produce = (rx_produce + 1) & UART_RINGBUFFER_MASK_RX; + uart_ev_pending_write(UART_EV_RX); } if(stat & UART_EV_TX) { + uart_ev_pending_write(UART_EV_TX); if(tx_level > 0) { uart_rxtx_write(tx_buf[tx_consume]); tx_consume = (tx_consume + 1) & UART_RINGBUFFER_MASK_TX; @@ -43,8 +45,6 @@ void uart_isr(void) } else tx_cts = 1; } - - uart_ev_pending_write(stat); } /* Do not use in interrupt handlers! */ -- 2.30.2