You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			729 B
		
	
	
	
		
			C
		
	
			
		
		
	
	
			40 lines
		
	
	
		
			729 B
		
	
	
	
		
			C
		
	
| #include "fifo.h"
 | |
| 
 | |
| uint8_t fifo_push(Fifo_t * fifo, uint8_t byte)
 | |
| {
 | |
|   //if (fifo.write >= FIFO_SIZE)
 | |
|   //  fifo.write = 0; // erhöht sicherheit
 | |
|   
 | |
| 
 | |
|   if ( ( fifo->write + 1 == fifo->read ) ||
 | |
|        ( fifo->read == 0 && fifo->write + 1 == FIFO_SIZE ) )
 | |
|     return FIFO_FAIL; // voll
 | |
| 
 | |
|   fifo->data[fifo->write] = byte;
 | |
| 
 | |
|   fifo->write++;
 | |
|   if (fifo->write >= FIFO_SIZE)
 | |
|     fifo->write = 0;
 | |
| 
 | |
|   return FIFO_SUCCESS;
 | |
| }
 | |
| 
 | |
| uint8_t fifo_pop(Fifo_t * fifo, uint8_t *pByte)
 | |
| {
 | |
|   if (fifo->read == fifo->write){
 | |
|     return FIFO_FAIL;
 | |
|   }
 | |
| 
 | |
|   *pByte = fifo->data[fifo->read];
 | |
| 
 | |
|   fifo->read++;
 | |
|   if (fifo->read >= FIFO_SIZE)
 | |
|     fifo->read = 0;
 | |
| 
 | |
|   return FIFO_SUCCESS;
 | |
| }
 | |
| 
 | |
| uint8_t fifo_peek(Fifo_t * fifo){
 | |
|     return fifo->data[fifo->read];
 | |
| }
 |