DC数据的波动主要与PCB 走线有关,硬件方面注意模拟走线远离数字信号。另外可以在ADC 引脚加电容滤除一些高频信号, 软件方面可以增加低通滤波,推荐个公式:
Y = (Y*a + X*b) >>n ; // 要求 a+b = 2^n, 除法用移位,否则还是要用除法
举个具体数值的例子,a+b = 8 时可用下式: y = (5y +3x +4) >>3 ; y = (7y + x +4) >>3 ; // 加4是做4舍5入
a+b =16 时, y = (13y + 3x + 8) >> 4; y = (15y + x +8) >>4 ;
x前面的系数越小,对数据跳动的抑制效果越好,但真实信号变化会变慢。
|