}
/* uart interrupt enable */
HW_REG(uart_base[uartno]+UARTIM_OFFSET) |= _BV(UART_TXIM) | _BV(UART_RXIM);
- HW_REG(ISR_ENABLE_VECTOR+uart_isr_vector[uartno]/32) |=
+ HW_REG(ISR_ENABLE_VECTOR+4*(uart_isr_vector[uartno]/32)) |=
_BV(uart_isr_vector[uartno]%32);
HW_REG(uart_base[uartno]+UARTCTL_OFFSET) |= _BV(UART_EOT);
return(HW_REG(uart_base[uartno]+UARTFR_OFFSET)&_BV(UART_RXFE))?0:1;
}
+
void uart_flush(uint8_t uartno){
if(uartno>UART_MAX){
return;
}
- while(uart_tx_buffer[uartno].fillcount>0){
+ while(circularbytebuffer_cnt(&(uart_tx_buffer[uartno])))
+ ;
+ while((HW_REG(uart_base[uartno]+UARTCTL_OFFSET)&_BV(UART_EOT)) == 0)
;
- }
}