From: bsekisser Date: Sat, 10 Oct 2020 21:40:59 +0000 (-0400) Subject: Set udre flag when (re)enabling uart transmitter. X-Git-Tag: v1.7~11^2 X-Git-Url: https://git.htl-mechatronik.at/public/?a=commitdiff_plain;h=e479fb39412f9fb7b1110facd6867997ef839e5d;p=sx%2Fsimavr.git Set udre flag when (re)enabling uart transmitter. modified: sim/avr_uart.c Previously, disabling the uart transmitter cleared the udrc interrupt and cleared the udre (udrc.raised) flag. Upon reenabling the transmitter, the udre flag is still clear signifying the buffer is full, thus waiting for the udr to clear via udre flag hangs. --- diff --git a/simavr/sim/avr_uart.c b/simavr/sim/avr_uart.c index 4e3db86..5594170 100644 --- a/simavr/sim/avr_uart.c +++ b/simavr/sim/avr_uart.c @@ -405,6 +405,8 @@ avr_uart_write( if (new_txen != txen) { if (p->udrc.vector && !new_txen) { avr_uart_clear_interrupt(avr, &p->udrc); + } else { + avr_regbit_set(avr, p->udrc.raised); } } }