消抖滤波法的实现步骤为:设置一个滤波计数器,将每次采样值与当前有效值比较,如果采样值等于当前有效值,则计数器清零。如果采样值不等于当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出),如果计数器溢出,则将本次值替换当前有效值,并清计数器。也就是只有采样值连续变化N次之后,才将采样值做为有效值。
下面直接看C代码的实现
define N 12
unsigned int filter9( void )
{
unsigned int count = 0;
unsigned int new_value = 0, value = 0;
new_value = ReadVol_CH2();
while( value != new_value )
{
count++;
if( count >= N )
{
value = new_value;
return new_value;
}
new_value = ReadVol_CH2();
}
return value;
}
void main( void )
{
while( 1 )
{
val = ReadVol_CH2(); //读取AD采样值
val1 = filter9();
printf( "A%drn", val );
printf( "B%drn", val1 );
}
}
主函数中实时采样AD端口的波形值,然后将采样值经过消抖滤波法进行滤波,然后用串口输出原始采样值和滤波后的值,并在串口波形软件上显示采样的数据波形。
图中蓝色曲线为原始数据曲线,橙色曲线为经过滤波算法后的曲线。
消抖滤波法对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。
但是对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。
上一篇:STM8单片机产生随机数
下一篇:STM8单片机常见问题及解决方案
推荐阅读
史海拾趣
在电子汽车行业初期,XYZ公司主要生产简单的车载电子设备。为了进入欧洲市场,公司决定对其产品进行E-Mark认证。经过严格的测试和审核,XYZ公司的产品质量和安全性能得到了欧洲市场的认可。随着欧洲市场的开拓,XYZ公司逐渐扩大了生产规模,提升了技术水平,最终成为了汽车电子行业的领导者。
Chemtronics一直坚守严格的质量标准。公司自早期起就遵循ISO9001:2000的质量标准来制造产品,确保每一款产品都达到同等高质量。这种对质量的坚持不仅赢得了客户的信任,也为公司在竞争激烈的电子行业中树立了良好的口碑。
随着公司实力的不断增强,DEM Manufacturing开始积极拓展国际市场。公司凭借优质的产品和专业的服务,成功打入欧洲、北美等多个地区的市场,并建立了稳定的销售网络。同时,公司还积极参与国际展览和论坛,与国际同行进行交流和合作,不断提升自身的国际影响力。
德芯半导体深知人才是企业发展的核心。因此,公司注重人才队伍的建设,吸引了一批具有丰富经验和专业知识的资深工程师和管理人员。这些人才不仅为公司带来了先进的技术和管理经验,还为公司的发展提供了源源不断的动力。公司设立技术委员会,布局先进封装项目,推动公司在高端封装技术上的突破。
随着国内市场的不断饱和,ATP公司开始将目光投向国际市场。他们制定了国际化发展战略,通过设立海外分支机构、参加国际展会等方式拓展海外市场。同时,公司积极与国际知名企业合作,共同开发新产品、新技术,实现了互利共赢。这些举措为ATP公司的全球化发展奠定了坚实基础。
请注意,上述故事仅为虚构内容,不代表Advanced Thermal Products Inc公司的真实发展历程。如需了解该公司的真实情况,建议查阅相关资料或访问其官方网站。
随着国内市场的不断饱和,ATP公司开始将目光投向国际市场。他们制定了国际化发展战略,通过设立海外分支机构、参加国际展会等方式拓展海外市场。同时,公司积极与国际知名企业合作,共同开发新产品、新技术,实现了互利共赢。这些举措为ATP公司的全球化发展奠定了坚实基础。
请注意,上述故事仅为虚构内容,不代表Advanced Thermal Products Inc公司的真实发展历程。如需了解该公司的真实情况,建议查阅相关资料或访问其官方网站。
急求 COG-16265 -I2C 数据手册!!!以及它的相关资料!!! 急求 COG-16265 -I2C 数据手册!!! 以及它的相关资料!!! 用 51 I/O 口模拟I2C接口和它相连 ,如果有COG-16265 -I2C 和51 的程序更好。谢谢啦… 查看全部问答∨ |
各位大侠, 小弟初次使用keil, 用C做一个非常小的51系列单片机试验小程序, 程序如下: #include <reg52.h> #define uint unsigned int sbit gate1=P2^0; & ...… 查看全部问答∨ |
9月19日下午阿牛哥赶往静安庄国展中心参观太阳能风能展和军民两用技术展览会。快到中秋节和国庆节了,但是会场里观众很多。光伏产品和风能发电是热点,有一些太阳能基板材料供应商,有很多是德国和奥地利的公司。很奇怪这次无锡 ...… 查看全部问答∨ |
【TI技术文章】:KeyStone 多核SoC工具套件:单个平台满足所有需求 过去,实施和部署多核片上系统 (SoC) 器件的一大挑战一直都是为编程和调试这些平台提供适当的工具。开发人员要充分发挥多核性能优势,就必须进行高效率分区,并在这些核上运行高质量软件。TI 支持 KeyStone 扩展的 Code Composer StudioTM (CCStudi ...… 查看全部问答∨ |
从时下的新闻你看,今年大学生的就业形势已经到了唱国歌的地步,很危险,尤其是北京市的大学生就业。可是,据我接触的民营企业看,全部都缺少人才,招聘陷入僵局,招工更不用说了。说起来,真有点荒唐,中国 ...… 查看全部问答∨ |
我现在用MSP430G2553做键盘实验,但是老是不成功,我还没按键盘,总是直接级进中断了。用的是中断的方法做的。由于我的4*4键盘坏了,所以我自己在面包板上面搭了一个只能有4个按键的键盘,但是作用完全一样,因为我用查询的方式写的代码已经验证成 ...… 查看全部问答∨ |
大侠们 调试发现c2000 launchpad执行以下语句有如下问题,跪求解释, GpioDataRegs.GPADAT.bit.GPIO0 = 0; GpioDataRegs.GPADAT.bit.GPIO1 = 0; GpioDataRegs.GPADAT.bit.GPIO2 = 0; GpioDataRegs.GPADAT.bit.GPIO3 = 0; 四条语句对应四个 ...… 查看全部问答∨ |