/**********************************/
/限幅滤波算法/
/方法/
/*根据经验判断确定两次采样允许的最大偏差值,设为A
每次检验到新值时判断
1.如果本次值与上次值之差<=A,则本次值有效
2.如果本次值与上次值之差>A,则本次无效,放弃本次值,用上次值代替本次值
*/
define A 10 //两次采样值允许的最大偏差值
char value; //有效值
void filter()
{
char new_value; //本次采样值
new_value=get_ad();
if((new_value - value > A)||(value - new_value > A)
{
return value;
}
else
{
return new_value;
}
}