建立数据队列可能好用 只要数据队列够长应该会稳定
/////////////建立数据队列 计数平均值///////////////
/*!
说明:建立数据队列 计数平均值; 建立全局数据求和 先减去数据 在加数据在求平均数
target:结构体定义对象
data:新的数据
*/
void DataFlowRecordFast(SAD_DataFlow* target ,u16 data)//记录数据
{
u8 i ;
i = 0x7f & target->Sign;
target -> SumDataADC = (target -> SumDataADC) - (target -> DataFlow [i]) ;
target -> DataFlow [i] = data;
target -> Sign++; i++;
if(i >= ADDE_DataFlow) {target->Sign = 0x80;} // 数据等0x80,表示数据填充1周,当数据有效;
target -> SumDataADC = (target -> SumDataADC) + data;
target->DataADC = target -> SumDataADC / ADDE_DataFlow;
}
////#define ADDE_DataFlow 15
////typedef struct
////{
//// u8 Sign; // 数据记录标号 Sign 高位为数据有效标记位,为1 数据已经填充一周。
//// u16 DataFlow[ADDE_DataFlow]; // 记录相关数据
//// u32 SumDataADC; // 当前数据相加后的结果
//// u16 DataADC; // 数据有效值
////} SAD_DataFlow ; // 记录AD数据转换结果 |