Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 23 additions & 24 deletions embedded/STM32/src/Drivers/ring_buffer.c
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
#include "../../app/inc/common_defines.h"

#define RING_BUF_SIZE 128U
#define RING_BUF_SIZE 128U

typedef struct ring_buffer_s
{
uint32_t read_index;
uint32_t write_index;
uint8_t* buf;
uint32_t size;
typedef struct ring_buffer_s {
uint32_t read_index;
uint32_t write_index;
uint8_t* buf;
uint32_t size;
} ring_buffer_t;

void ring_buffer_init(ring_buffer_t* rb, uint8_t* buf, uint32_t size)
{


}

bool ring_buffer_read(ring_buffer_t* rb, uint8_t* byte)
{

void ring_buffer_init(ring_buffer_t* rb, uint8_t* buf, uint32_t size) {}

bool ring_buffer_read(ring_buffer_t* rb, uint8_t* byte) {
if (ring_buffer_empty(rb)) {
return false;
}
*byte = rb->buf[rb->read_index];
rb->read_index = (rb->read_index + 1) & (rb->size - 1);
return true;
}

bool ring_buffer_write(ring_buffer_t* rb, uint8_t byte)
{


bool ring_buffer_write(ring_buffer_t* rb, uint8_t byte) {
uint32_t next_write_index = (rb->write_index + 1) & (rb->size - 1);
if (next_write_index == rb->read_index) {
return false;
}
rb->buf[rb->write_index] = byte;
rb->write_index = next_write_index;
return true;
}

bool ring_buffer_empty(ring_buffer_t* rb)
{

}
bool ring_buffer_empty(ring_buffer_t* rb) {}