added clear_buffer

This commit is contained in:
Kirill Kurshakow 2024-02-27 14:01:42 +03:00
parent e999651e09
commit fad04330de
3 changed files with 4 additions and 2 deletions

View File

@ -3,7 +3,7 @@
#include "circular_buf.h"
void initialize_buffer(struct circular_buffer* cb) {
void clear_buffer(struct circular_buffer* cb) {
cb->buf_head = 0;
cb->buf_tail = 0;
}

View File

@ -9,7 +9,7 @@ struct circular_buffer{
unsigned char buf_tail;
};
void initialize_buffer(struct circular_buffer* cb);
void clear_buffer(struct circular_buffer* cb);
int buffer_empty(const struct circular_buffer* cb);
int buffer_full(const struct circular_buffer* cb);
void write_buffer(struct circular_buffer* cb, int value);

View File

@ -24,6 +24,7 @@ void UART_send(uint8_t* data, size_t length) {
}
}
UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи
clear_buffer(&uartTxBuffer);
}
// Получение данных из буфера
@ -41,6 +42,7 @@ int UART_receive(uint8_t* data, size_t length) {
if (byteCount > length) {
overflow = 1;
}
clear_buffer(&uartRxBuffer);
return overflow ? -1 : byteCount; // Возвращает количество успешно принятых байт или -1 в случае переполнения
}