📄 4.1.3 防脉冲干扰平均值滤波.txt
字号:
void interrupt
AD(void)
{
WREG_temp=WREG; //现场保护
STATUS_temp=STAUTS;
ADIF=0; //清除中断标志
AD_temp=ADRESH; //保存1次AD采样结果
ADgot[count++]=AD_temp; //保存采样结果到数组中
if(AD_temp>AD_max) //当前采样大于最大值?
{
AD_max=AD_temp; //是,在AD_max中保存当前值
}
else if(AD_temp<AD_min) //否,比较当前采样小于最小值?
{
AD_min=AD_temp; //是,在AD_min中保存当前值
}
if(count>=8) //采样次数是否达到8次?
{
count=0; //是,采样次数清零,
unsigned char i;
for(i=0;i<8;i++)
AD_total+=ADgot[i]; //累加8次采样数据
AD_total=AD_total-AD_min-AD_max; //减掉最大值和最小值,得到6次AD结果
AD_result=AD_total/6; //计算6次采样平均值
AD_total=0;
}
WREG=WREG_temp;
STATUS=STAUTS_temp; //还原现场
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -