| void serial3_putchar(uint32_t c) | void serial3_putchar(uint32_t c) | ||||
| { | { | ||||
| uint32_t head; | |||||
| uint32_t head, n; | |||||
| if (!(SIM_SCGC4 & SIM_SCGC4_UART2)) return; | if (!(SIM_SCGC4 & SIM_SCGC4_UART2)) return; | ||||
| if (transmit_pin) *transmit_pin = 1; | if (transmit_pin) *transmit_pin = 1; | ||||
| if ((UART2_S1 & UART_S1_TDRE)) { | if ((UART2_S1 & UART_S1_TDRE)) { | ||||
| uint32_t tail = tx_buffer_tail; | uint32_t tail = tx_buffer_tail; | ||||
| if (++tail >= TX_BUFFER_SIZE) tail = 0; | if (++tail >= TX_BUFFER_SIZE) tail = 0; | ||||
| UART2_D = tx_buffer[tail]; | |||||
| n = tx_buffer[tail]; | |||||
| if (use9Bits) UART2_C3 = (UART2_C3 & ~0x40) | ((n & 0x100) >> 2); | |||||
| UART2_D = n; | |||||
| tx_buffer_tail = tail; | tx_buffer_tail = tail; | ||||
| } | } | ||||
| } else if (priority >= 256) { | } else if (priority >= 256) { |