假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();1、限副滤波/*A值可根据实际情况调整value为有效值,new_value为当前采样值滤波程序返回有效的实际值*/#defineA10charvalue;charfilter(){charnew_value;new_value=get_ad();if((new_value-value>A)||(value-new_value>A)returnvalue;returnnew_value;}2、中位值滤波法/*N值可根据实际情况调整排序采用冒泡法*/#defineN11charfilter(){charvalue_buf[N];charcount,i,j,temp;for(count=0;countvalue_buf[i+1]){temp=value_buf[i];value_buf[i]=value_buf[i+1];value_buf[i+1]=temp;}}}returnvalue_buf[(N-1)/2];}3、算术平均滤波法/**/#defineN12charfilter(){intsum=0;for(count=0;countvalue_buf[i+1]){temp=value_buf[i];value_buf[i]=value_buf[i+1];value_buf[i+1]=temp;}}}for(count=1;count=N)returnnew_value;delay();new_value=get_ad();}returnvalue;}