📄 4.1.4 中值滤波.txt
字号:
void interrupt
AD(void)
{
WREG_temp=WREG; //现场保护
STATUS_temp=STAUTS;
ADIF=0; //清除中断标志
ADgot[count++]=ADRESH; //保存AD转换结果到数组中
if(count>=5) //采样结果超过5次?
{ //是,则执行以下操作
unsigned char i,j,temp;
for(i=0;i<4;i++)
for(j=i;j<5;j++)
if(ADgot[i]>ADgot[j] //将第i个数依次和第i+1到最后的数进行比较
{
temp=ADgot[j]; //在第i个数的位置
ADgot[j]=ADgot[i]; //保存从i到最后个数中最小的一个
ADgot[i]=temp; //temp用于中间交换的临时变量
}
AD_result=ADgot[2]; //把最中间的采样结果作为最后AD转换结果
//即5个数当中的第3个,从0到4的下标号为2
count=0; //计数器清零
}
WREG=WREG_temp;
STATUS=STAUTS_temp; //还原现场
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -