fifo.c

来自「dm270 source code」· C语言 代码 · 共 70 行

C
70
字号
/*
    DM270 ARM Evaluation Software

    (c)Texas Instruments 2003
*/

#include <demo/dm270_demo.h>
#include <system/armsys270.h>
#include <util/fifo.h>

STATUS FIFO_init(FIFO *fifo) {
	if(fifo==NULL)
		return E_DEVICE;

	fifo->count		= 0;
	fifo->readIndex = 0;
	fifo->writeIndex = 0;
	fifo->len  = MAX_FIFO_BUF_LEN;
	return E_PASS;
}

STATUS FIFO_get(FIFO *fifo, char *data) {
	if(FIFO_isEmpty(fifo)==TRUE)
		return E_DEVICE;
    
	*data = fifo->buf[fifo->readIndex];

	fifo->readIndex++;
	if( fifo->readIndex >= fifo->len )
		fifo->readIndex=0;
	fifo->count--;
	return E_PASS;
}

STATUS FIFO_put(FIFO *fifo, char data) {
	if(FIFO_isFull(fifo)==TRUE)
		return E_DEVICE;

	fifo->buf[fifo->writeIndex]=data;
	fifo->writeIndex++;
	if(fifo->writeIndex >= fifo->len )
		fifo->writeIndex = 0;
	fifo->count++;
	return E_PASS;
}

BOOL FIFO_isEmpty(FIFO *fifo) {
	if(fifo->count == 0 )
		return TRUE;
	else
		return FALSE;	
}

BOOL FIFO_isFull(FIFO *fifo) {
	if(fifo->count >= fifo->len )
		return TRUE;
	else
		return FALSE;	
}

STATUS FIFO_clear(FIFO *fifo) {
	if(fifo==NULL)
		return E_DEVICE;

	fifo->count		 = 0;
	fifo->readIndex  = 0;
	fifo->writeIndex = 0;
	return E_PASS;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?