合泰微控制器AD採集濾波程式
阿新 • • 發佈:2018-11-17
/************************************************************** 函式名稱:NtcAD_Testing() 函式功能:溫度感測器取樣函式 入口引數: 出口引數:Flag_Ntc_OneAd,AdResult 備 注:取樣NTC的AD值,取樣6次,去掉最大及最小求算術平均值 **************************************************************/ void NtcAD_Testing(unsigned char i) { //static volatile unsigned char admin,admax,adtimes; //static volatile unsigned int adsum; //static volatile bit Flag_ADFrist; if(Flag_AD&&ADIF) { Flag_AD=0; if(!Flag_ADFrist) { admax = ADRESH; admin = ADRESH; Flag_ADFrist=1; } else if(ADRESH > admax) admax = ADRESH; //AD取樣最大值 else if(ADRESH < admin) admin = ADRESH; //AD取樣最小值 adsum += ADRESH; if(++adtimes >= 6) { adsum -= admax; adsum -= admin; AdResult = adsum >> 2; //8次平均值作為最終結果 Flag_ADFrist=0; if(admax>(admin+20)) { //最大值及最小值差20個8BITAD則當前取樣資料作廢 adsum = 0; admin = 0; admax = 0; adtimes = 0; } else { adsum = 0; admin = 0; admax = 0; adtimes = 0; ADnex++; Flag_Ntc_OneAd=1; } } } }