建立數據隊列可能好用 只要數據隊列夠長應該會穩定
/////////////建立數據隊列 計數平均值///////////////
/*!
說明:建立數據隊列 計數平均值; 建立全局數據求和 先減去數據 在加數據在求平均數
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數據轉換結果 |