C Program to Read and Write FIFO

How to write a C Program to Read and Write FIFO (First In First Out) in C Programming Language ?


Solution:
  1. void write_fifo(fifo_t* fifo,uint8_t data) {
  2.     if(fifo->bufer_free) {
  3.         fifo->data[fifo->write_point] = data;
  4.         if(fifo->write_point >= fifo->bufer_size) {
  5.             fifo->write_point = 0;
  6.         } else {
  7.             fifo->write_point++;
  8.         }
  9.         fifo->bufer_free--;
  10.     }
  11. }
  12.  
  13. uint8_t read_fifo(fifo_t* fifo) {
  14.     uint8_t data = 0;
  15.     if(fifo->bufer_free <= fifo->bufer_size) {
  16.         data = fifo->data[fifo->read_point];
  17.         if(fifo->read_point >= fifo->bufer_size) {
  18.             fifo->read_point = 0;
  19.         } else {
  20.             fifo->read_point++;
  21.         }
  22.         fifo->bufer_free++;
  23.     }
  24. }


Learn More :