| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*
- * FIFO_COM.c
- *
- * Created on: 14 mai 2019
- * Author: e_rcluze
- */
- #include "FIFO_COM.h"
- void initFIFO(FIFO_COM *f){
- f->pt_read = 0;
- f->pt_write = 0;
- }
- uint8_t readFirst(FIFO_COM *f) {
- return f->Fifo[f->pt_read];
- }
- void readFifo(FIFO_COM *f, uint8_t *r, uint8_t nb) {
- for (uint8_t i = 0; i < nb;i++) {
- if (f->pt_read + i >= NBFIFO)
- r[i] = f->Fifo[f->pt_read + i - NBFIFO];
- else
- r[i] = f->Fifo[f->pt_read + i];
- }
- if (f->pt_read + nb >= NBFIFO)
- f->pt_read = f->pt_read + nb - NBFIFO;
- else
- f->pt_read = f->pt_read + nb;
- }
- void writeFifo(FIFO_COM *f, uint8_t *r, uint8_t nb) {
- uint8_t i;
- for (i = 0; i < nb;i++) {
- if (f->pt_write + i >= NBFIFO)
- f->Fifo[f->pt_write + i - NBFIFO] = r[i];
- else
- f->Fifo[f->pt_write + i] = r[i];
- }
- if (f->pt_write + nb >= NBFIFO)
- f->pt_write = f->pt_write + nb - NBFIFO;
- else
- f->pt_write = f->pt_write + nb;
- }
- uint8_t FIFO_nbRead(FIFO_COM *f) {
- if (f->pt_read <= f->pt_write)
- return f->pt_write - f->pt_read;
- else
- return f->pt_write + NBFIFO - f->pt_read;
- }
|