From e999651e09a9e9f9eb71c56ddd7326b00db76d2b Mon Sep 17 00:00:00 2001 From: Kirill Kurshakow Date: Tue, 13 Feb 2024 19:25:57 +0300 Subject: [PATCH] tx interruption fixes --- UART/uart.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/UART/uart.c b/UART/uart.c index ca0a3da..1b31d04 100644 --- a/UART/uart.c +++ b/UART/uart.c @@ -23,6 +23,7 @@ void UART_send(uint8_t* data, size_t length) { break; // если буфер передачи заполнен, то отправка прерывается } } + UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи } // Получение данных из буфера @@ -54,5 +55,7 @@ ISR(USART_RX_vect) { ISR(USART_TX_vect) { if (!buffer_empty(&uartTxBuffer)) { UDR0 = read_buffer(&uartTxBuffer); + } else { + UCSR0B &= ~(1 << TXCIE0); // отключаем прерывание, когда все данные отправлены } } \ No newline at end of file