tx interruption fixes

This commit is contained in:
Kirill Kurshakow 2024-02-13 19:25:57 +03:00
parent 69e8412315
commit e999651e09

View File

@ -23,6 +23,7 @@ void UART_send(uint8_t* data, size_t length) {
break; // если буфер передачи заполнен, то отправка прерывается break; // если буфер передачи заполнен, то отправка прерывается
} }
} }
UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи
} }
// Получение данных из буфера // Получение данных из буфера
@ -54,5 +55,7 @@ ISR(USART_RX_vect) {
ISR(USART_TX_vect) { ISR(USART_TX_vect) {
if (!buffer_empty(&uartTxBuffer)) { if (!buffer_empty(&uartTxBuffer)) {
UDR0 = read_buffer(&uartTxBuffer); UDR0 = read_buffer(&uartTxBuffer);
} else {
UCSR0B &= ~(1 << TXCIE0); // отключаем прерывание, когда все данные отправлены
} }
} }