avr-fw-modules/core/src/fifo_poll.c

18 lines
248 B
C
Executable File

#include <hwo/fifo.h>
#include <sys/atomic.h>
uint16_t fifo_poll(FIFO* fifo)
{
ATOMIC
if (fifo_avail(fifo)>0)
{
uint8_t r = fifo->pBuffer[ fifo->pRead++ ];
if (fifo->pRead == fifo->size)
fifo->pRead = 0;
return r;
};
return -1;
};