diff options
Diffstat (limited to 'src/avr')
-rw-r--r-- | src/avr/serial.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/avr/serial.c b/src/avr/serial.c index 0a7a9508..c1882a5d 100644 --- a/src/avr/serial.c +++ b/src/avr/serial.c @@ -63,6 +63,13 @@ ISR(USART0_UDRE_vect) UDR0 = transmit_buf[transmit_pos++]; } +// Enable tx interrupts +static void +enable_tx_irq(void) +{ + UCSR0B |= 1<<UDRIE0; +} + /**************************************************************** * Console access functions @@ -124,7 +131,7 @@ console_get_output(uint8_t len) writeb(&transmit_pos, 0); barrier(); writeb(&transmit_max, tmax); - UCSR0B |= 1<<UDRIE0; + enable_tx_irq(); return &transmit_buf[tmax]; } @@ -133,6 +140,5 @@ void console_push_output(uint8_t len) { writeb(&transmit_max, readb(&transmit_max) + len); - // enable TX interrupt - UCSR0B |= 1<<UDRIE0; + enable_tx_irq(); } |