⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fifo.c

📁 dm270 source code
💻 C
字号:
/*
    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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -