127 #define AddIndexFifo(NAME,SIZE,TYPE,SUCCESS,FAIL) \
128 uint32_t volatile NAME ## PutI; \
129 uint32_t volatile NAME ## GetI; \
130 TYPE static NAME ## Fifo [SIZE]; \
131 void NAME ## Fifo_Init(void){ \
132 NAME ## PutI = NAME ## GetI = 0; \
134 int NAME ## Fifo_Put (TYPE data){ \
135 if(( NAME ## PutI - NAME ## GetI ) & ~(SIZE-1)){ \
138 NAME ## Fifo[ NAME ## PutI &(SIZE-1)] = data; \
142 int NAME ## Fifo_Get (TYPE *datapt){ \
143 if( NAME ## PutI == NAME ## GetI ){ \
146 *datapt = NAME ## Fifo[ NAME ## GetI &(SIZE-1)]; \
150 unsigned short NAME ## Fifo_Size (void){\
151 return ((unsigned short)( NAME ## PutI - NAME ## GetI )); \
void TxFifo_Init(void)
Initialize FIFO.
char RxFifo_Get(void)
Get FIFO.
uint32_t TxFifo_Size(void)
number of elements in FIFO
void RxFifo_Init(void)
Initialize FIFO.
char TxFifo_Get(void)
Get FIFO.
uint32_t RxFifo_Size(void)
number of elements in FIFO
int RxFifo_Put(char data)
Put FIFO.
int TxFifo_Put(char data)
Put FIFO.