1、假定从 8 位 AD 中读取数据(如果是更高位的 AD 可定义数据类型为 int),子程序为 get_ad();1、限副滤波/* A 值可根据实际情况调整value 为有效值,new_value 为当前采样值 滤波程序返回有效的实际值 */#define A 10char value;char filter()char new_value;new_value = get_ad();if ( ( new_value - value A ) | ( value - new_value A )return value;return new_value;2、中位值滤波法/* N 值可根据实际情况调整排
2、序采用冒泡法*/#define N 11char filter()char value_bufN;char count,i,j,temp;for ( count=0;countvalue_bufi+1 )temp = value_bufi;value_bufi = value_bufi+1; value_bufi+1 = temp;return value_buf(N-1)/2; 3、算术平均滤波法/*/#define N 12char filter()int sum = 0;for ( count=0;countvalue_bufi+1 )temp = value_bufi;value_bufi = value_bufi+1; value_bufi+1 = temp;for(count=1;count=N) return new_value;delay();new_value = get_ad();return value;