本帖最后由 eltonchang2001 于 2022-11-24 12:00 编辑
- /**************************************************************
- 函数名称: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;
-
- }
- }
- }
-
- }
|