78 lines
1.6 KiB
C
78 lines
1.6 KiB
C
/*
|
|
* @Author: zhangpeng
|
|
* @Date: 2020-03-05 18:28:21
|
|
* @LastEditTime: 2020-03-05 20:02:45
|
|
* @LastEditors: zhangpeng
|
|
* @Description: New File
|
|
* @FilePath: \Firmware\user\fifo.c
|
|
* @Copyright (c) 2019-2021 ZhangYeJinZhi.Co.Ltd. All rights reserved.
|
|
*/
|
|
|
|
/**
|
|
* @function: Fifo_Read
|
|
* @description: 从数据队列里面读取一帧数据
|
|
* @param {type}
|
|
* @return:
|
|
* @Author: zhangpeng
|
|
* @LastEditTime: Do not edit
|
|
*/
|
|
#include "fifo-board.h"
|
|
|
|
/**
|
|
* @function: Fifo_Read
|
|
* @description: 从数据队列里面读取一帧数据
|
|
* @param fifo: 队列指针
|
|
* @param buf: 读取数据的缓存
|
|
* @return:
|
|
* @Author: zhangpeng
|
|
*/
|
|
int FifoRead(Fifo_p fifo, char *buf, int length)
|
|
{
|
|
if (fifo->count == 0)
|
|
{
|
|
return -1;
|
|
}
|
|
fifo->count--;
|
|
// *length = fifo->data[fifo->read].length;
|
|
memcpy(buf, fifo->data + fifo->read * length, length);
|
|
fifo->read++;
|
|
if (fifo->read >= fifo->max_count)
|
|
fifo->read = 0;
|
|
return 0; //数据读取成功
|
|
}
|
|
|
|
/**
|
|
* @function: Fifo_Read
|
|
* @description: 从数据队列里面读取一帧数据
|
|
* @param fifo: 队列指针
|
|
* @param buf: 读取数据的缓存
|
|
* @return:
|
|
* @Author: zhangpeng
|
|
*/
|
|
int FifoWrite(Fifo_p fifo, char *buf, int length) //
|
|
{
|
|
if (fifo->data == NULL)
|
|
return -1;
|
|
if (fifo->count == fifo->max_count)
|
|
{ // 满
|
|
return -1;
|
|
}
|
|
fifo->count++;
|
|
// fifo->data[fifo->write].length = length;
|
|
memcpy(fifo->data + fifo->write * length, buf, length);
|
|
fifo->write++;
|
|
if (fifo->write >= fifo->max_count)
|
|
fifo->write = 0;
|
|
return 0; //数据读取成功
|
|
}
|
|
/*清空缓冲区*/
|
|
void FifoInit(Fifo_p fifo, char *data, int max)
|
|
{
|
|
fifo->read = 0;
|
|
fifo->write = 0;
|
|
fifo->count = 0;
|
|
fifo->data = data;
|
|
fifo->max_count = max;
|
|
}
|
|
|