avr/serial: Separate out low-level hardware manipulation to its own function
Introduce enable_tx_irq() for manipulating the AVR hardware. This keeps the low-level hardware code together. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
ea5f825a91
commit
e59951c8ae
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue