历史上的今天

今天是:2024年09月18日(星期三)

正在发生

2021年09月18日 | 单片机ADC采样算法----消抖滤波法

发布者:tanjunhui 来源: eefocus关键字:单片机 手机看文章 扫描二维码
随时随地手机看文章

消抖滤波法的实现步骤为:设置一个滤波计数器,将每次采样值与当前有效值比较,如果采样值等于当前有效值,则计数器清零。如果采样值不等于当前有效值,则计数器+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端口的波形值,然后将采样值经过消抖滤波法进行滤波,然后用串口输出原始采样值和滤波后的值,并在串口波形软件上显示采样的数据波形。

图中蓝色曲线为原始数据曲线,橙色曲线为经过滤波算法后的曲线。


消抖滤波法对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。


但是对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。

关键字:单片机 引用地址:单片机ADC采样算法----消抖滤波法

上一篇:STM8单片机产生随机数
下一篇:STM8单片机常见问题及解决方案

推荐阅读

Adept MobileRobots项目经理Seth Allen认为,地面机器人系统必须常常处理“枯燥、肮脏、危险”的工作。换言之,机器人系统通常用于人工介入成本过高、危险过大或者效率过低的任务。在许多情况下,机器人平台的自主工作能力是一项极为重要的特性,即通过导航系统来监视并控制机器人从一个位置移到下一位置的运动。管理位置和运动时的精度是实现高效自主工...
工信部网站公布了2019年7月电子信息制造业运行情况。 数据显示,7月,通信设备制造业增加值同比增长0.3%,出口交货值同比持平。主要产品中,手机产量同比下降4.5%,其中智能手机产量同比下降4.9%。1-7月,通信设备制造业营业收入同比增长6.8%,利润同比增长4.8%。 总的来看,今年7月,规模以上电子信息制造业增加值同比增长6.1%,增速比去年同期回落7.4个...
特斯拉将在下周二的 “电池日”展示该公司的电池性能。在此之前,特斯拉还将召开年度股东大会,届时将会重新选举董事长。这两场活动都将在美国东部时间下午 4:30 举行。 华尔街似乎都预计特斯拉将通过技术进步巩固其领先动力电池制造商的地位,帮助电动汽车最基础、最昂贵的零部件降低价格、增加容量。 以下是关于 “电池日”的三个重点: 1、又要推动...
在面向高可靠性应用开发MCU程序的过程中,工程师通常会遇到设定断点的问题,断点的合理使用对于更好地编程和MCU使用是一种挑战。借助新的工具,这些断点就可以发挥巨大的作用,成为开发工作中的利器。断点的概念非常简单,因为它的作用是在指定指令之前中断程序的执行。实现方式可以是硬件或软件。然而,简单并不意味着它不能被用于复杂的调试组合中,以达...

史海拾趣

问答坊 | AI 解惑

要成为一名嵌入式工程师,需要具备哪些技能和能力?

要成为一名嵌入式工程师,需要具备哪些技能和能力? 欢迎大家都来讨论讨论!…

查看全部问答∨

急求 COG-16265 -I2C 数据手册!!!以及它的相关资料!!!

急求 COG-16265 -I2C 数据手册!!! 以及它的相关资料!!! 用 51 I/O 口模拟I2C接口和它相连 ,如果有COG-16265 -I2C 和51 的程序更好。谢谢啦…

查看全部问答∨

Keil初次使用, 报错

各位大侠, 小弟初次使用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 ...…

查看全部问答∨

薪水是发给结果,不是发给能力的

        从时下的新闻你看,今年大学生的就业形势已经到了唱国歌的地步,很危险,尤其是北京市的大学生就业。可是,据我接触的民营企业看,全部都缺少人才,招聘陷入僵局,招工更不用说了。说起来,真有点荒唐,中国 ...…

查看全部问答∨

做键盘的时候430的中断为什么不受控制

我现在用MSP430G2553做键盘实验,但是老是不成功,我还没按键盘,总是直接级进中断了。用的是中断的方法做的。由于我的4*4键盘坏了,所以我自己在面包板上面搭了一个只能有4个按键的键盘,但是作用完全一样,因为我用查询的方式写的代码已经验证成 ...…

查看全部问答∨

c2000 launchpad调试出现的问题,你遇到了吗?

大侠们 调试发现c2000 launchpad执行以下语句有如下问题,跪求解释, GpioDataRegs.GPADAT.bit.GPIO0 = 0; GpioDataRegs.GPADAT.bit.GPIO1 = 0; GpioDataRegs.GPADAT.bit.GPIO2 = 0; GpioDataRegs.GPADAT.bit.GPIO3 = 0; 四条语句对应四个 ...…

查看全部问答∨

2015年 国赛信号类的题目 来讨论下哈

我们老师选的信号类题目,,,往年都是放大器   信号发生器一类的题目有没有感兴趣的童靴  一块讨论一下 …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved