How to write a C Program to Read and Write FIFO (First In First Out) in C Programming Language ?
Solution:
- void write_fifo(fifo_t* fifo,uint8_t data) {
- if(fifo->bufer_free) {
- fifo->data[fifo->write_point] = data;
- if(fifo->write_point >= fifo->bufer_size) {
- fifo->write_point = 0;
- } else {
- fifo->write_point++;
- }
- fifo->bufer_free--;
- }
- }
- uint8_t read_fifo(fifo_t* fifo) {
- uint8_t data = 0;
- if(fifo->bufer_free <= fifo->bufer_size) {
- data = fifo->data[fifo->read_point];
- if(fifo->read_point >= fifo->bufer_size) {
- fifo->read_point = 0;
- } else {
- fifo->read_point++;
- }
- fifo->bufer_free++;
- }
- }