30319_labs
Sistemas Electrónicos con Microprocesadores
Cargando...
Buscando...
Nada coincide
Funciones del Buffer Circular

Funciones

void circ_buf_init (circ_buf_t *const cb, uint16_t head, uint16_t tail)
uint8_t circ_buf_is_empty (circ_buf_t *const cb)
uint8_t circ_buf_is_full (circ_buf_t *const cb)
int8_t circ_buf_push (circ_buf_t *const cb, int16_t item)
int8_t circ_buf_pop (circ_buf_t *const cb, int16_t *const item)

Descripción detallada

Documentación de funciones

◆ circ_buf_init()

void circ_buf_init ( circ_buf_t *const cb,
uint16_t head,
uint16_t tail )

Inicializa el buffer circular.

Parámetros
cbPuntero a la estructura del buffer circular.
headValor inicial para el índice de escritura (head).
tailValor inicial para el índice de lectura (tail).

Esta función establece los índices de escritura (head) y lectura (tail). Permite definir el estado inicial del buffer, normalmente ambos en cero para indicar que está vacío.

Devuelve
void

◆ circ_buf_is_empty()

uint8_t circ_buf_is_empty ( circ_buf_t *const cb)

Comprueba si el buffer circular está vacío.

Parámetros
cbPuntero a la estructura del buffer circular.
Devuelve
1 si está vacío, 0 en caso contrario.
Nota
Un buffer está vacío cuando head == tail

◆ circ_buf_is_full()

uint8_t circ_buf_is_full ( circ_buf_t *const cb)

Comprueba si el buffer circular está lleno.

Parámetros
cbPuntero a la estructura del buffer circular.
Devuelve
1 si está lleno, 0 en caso contrario.
Nota
Un buffer está lleno cuando (head + 1) % size == tail

◆ circ_buf_pop()

int8_t circ_buf_pop ( circ_buf_t *const cb,
int16_t *const item )

Extrae una muestra del buffer circular.

Parámetros
cbPuntero a la estructura del buffer circular.
itemPuntero donde se almacenará la muestra extraída.
Devuelve
0 si tiene éxito, -1 si el buffer está vacío.

◆ circ_buf_push()

int8_t circ_buf_push ( circ_buf_t *const cb,
int16_t item )

Inserta una muestra en el buffer circular.

Parámetros
cbPuntero a la estructura del buffer circular.
itemMuestra a insertar.
Devuelve
0 si tiene éxito, -1 si el buffer está lleno.