精华内容
下载资源
问答
  • STM32延时消除抖动个人理解

    千次阅读 2018-09-26 18:46:43
    今天在一段中断服务程序中发现这么一句话。 delay_ms(10);//消抖 于是很好奇什么是抖动,以及为什么要消除抖动,还有抖动该怎么消除。 1.先讲一下什么是抖动: 通常按键所用开关都是机械弹性开关,当...

      今天在一段中断服务子程序中发现这么一句话。

    delay_ms(10);//消抖

     于是很好奇什么是抖动,以及为什么要消除抖动,还有抖动该怎么消除。

     

        1.先讲一下什么是抖动:

      通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动。这是我画的丑图,按键一按下时会产生一连串的抖动:

     

         2.为什么要消除抖动:

       按键稳定闭合时间长短是由操作人员决定的,通常都会在100ms以上,刻意快速按的话能达到40-50ms左右,很难再低了。抖动时间是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合或者一次断开只响应一次,必须进行按键的消抖处理。当检测到按键状态变化时,不是立即去响应动作,而是先等待闭合或断开稳定后再进行处理。

         3.抖动该怎么消除:

          消除抖动有硬件消抖和软件消抖两种方法,其中硬件消抖实用性不强,所以一般采用软件消抖。软件消抖如下代码:

    void EXTI9_5_IRQHandler(void)
    {
    	delay_ms(10);//延时消抖
    	if(KEY0_GET() == 0){
    		PAout(8) = ~PAout(8);
    	}
    	EXTI->PR = 1<<5;
    }

      然而这样写的代码太过于暴力,在延时的时候一直占用CPU资源,如果在延时的时候,有其他外部中断或者抢占事件,系统完全没有响应的。这里应该用一个独立的定时装置,来完成这个计时工作,而且需要在计时时间到达时再检测一次按键的电平值。但是还没学到那儿,先暂时这么用着。

    有很多地方引用了原作者,放一下链接,以后可以继续深入学习:

    https://blog.csdn.net/razor_et/article/details/80896968

    展开全文
  • 今天在一段中断服务程序中发现这么一句话。delay_ms(10);//消抖 于是很好奇什么是抖动,以及为什么要消除抖动,还有抖动该怎么消除。1.先讲一下什么是抖动:通常按键所用开关都是机械弹性开关,当机械触点断开、...

    今天在一段中断服务子程序中发现这么一句话。

    delay_ms(10);//消抖  于是很好奇什么是抖动,以及为什么要消除抖动,还有抖动该怎么消除。

    1.先讲一下什么是抖动:

    通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动。这是我画的丑图,按键一按下时会产生一连串的抖动:

    2.为什么要消除抖动:

    按键稳定闭合时间长短是由操作人员决定的,通常都会在100ms以上,刻意快速按的话能达到40-50ms左右,很难再低了。抖动时间是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合或者一次断开只响应一次,必须进行按键的消抖处理。当检测到按键状态变化时,不是立即去响应动作,而是先等待闭合或断开稳定后再进行处理。

    3.抖动该怎么消除:

    消除抖动有硬件消抖和软件消抖两种方法,其中硬件消抖实用性不强,所以一般采用软件消抖。软件消抖如下代码:

    void EXTI9_5_IRQHandler(void)

    {

    delay_ms(10);//延时消抖

    if(KEY0_GET() == 0){

    PAout(8) = ~PAout(8);

    }

    EXTI->PR = 1<<5;

    }

    然而这样写的代码太过于暴力,在延时的时候一直占用CPU资源,如果在延时的时候,有其他外部中断或者抢占事件,系统完全没有响应的。这里应该用一个独立的定时装置,来完成这个计时工作,而且需要在计时时间到达时再检测一次按键的电平值。但是还没学到那儿,先暂时这么用着。

    本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

    展开全文
  • 中断及中断服务程序。定时中断服务及时钟节拍服务函数OSTimTick()的作用 CPU相应中断的条件:1至少有一个中断源向CPU 发出信号 2系统允许信号且未对此信号屏蔽。 钟节拍服务函数OSTimTick()的作用:1把用来记录...
  • 对于定时器,我采用了定时器0,主程序是一些程序的初始化比较简单,主要是开中断,开定时器和方式选择等等,程序的开始是宏定义,定义管脚的作用和名称,然后是延时程序中断程序和显示程序,在显示程序中字形码对应...
  • UCOSIII时钟节拍

    2019-02-13 09:16:25
    ucos里,时钟节拍就好比是人心脏一样重要。... ucos中时钟节拍服务是通过在定时器中断服务程序中调用OSTimeTick()实现。  ucos要求提供定时中断,以实现延时与超时控制等功能。这个定...

            ucos里,时钟节拍就好比是人的心脏一样重要。它对于CPU能顺利在各任务间切换有着至关重要的作用。
      使用时钟源有一个特别需要注意的地方:用户必须在多任务系统启动以后再开启时钟节拍器,也就是在调用OSStart()之后。
      ucos中的时钟节拍服务是通过在定时器中断服务子程序中调用OSTimeTick()实现的。
      ucos要求提供定时中断,以实现延时与超时控制等功能。这个定时中断就是时钟节拍,它应该发生10-100次每秒。
      时钟节拍的频率越高,系统负荷越重。

    展开全文
  • 块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算 术运算模块、浮点数到BCD 码转换模块。 由于数据处理、脉冲计数/定时、逻辑控制和显示译码都是在单片机里完成 ,所以我们可以把系统分为...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    *2.5 在C语言是否有模拟继承等面向对象程序设计特性好方法? 2.6 为什么声明externf(structx*p);给我报了一个晦涩难懂警告信息? 2.7 我遇到这样声明结构代码:structname{intnamelen;charnamestr[1];}...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    *2.5 在C语言是否有模拟继承等面向对象程序设计特性好方法? 22 2.6 为什么声明extern f(struct x *p); 给我报了一个晦涩难懂警告信息? 23 2.7 我遇到这样声明结构代码:struct name {int namelen; ...
  • *2.5 在C语言是否有模拟继承等面向对象程序设计特性好方法? 22 2.6 为什么声明extern f(struct x *p); 给我报了一个晦涩难懂警告信息? 23 2.7 我遇到这样声明结构代码:struct name {int namelen; ...
  • 每一阶段都需要领导强有力推进和各方协调,否则会有中断延时、超预算风险。 总之,对企业ERP实施能力成熟度进行评级可以对项目进程进行有效计划、组织、领导和控制,可以对ERP应用企业、ERP软件公司、...
  • STM32低功耗三种方式唤醒

    热门讨论 2014-04-16 10:42:56
    (3) 两个中断服务程序的内容分别是:切换LED2和LED3灯状态; 整个工程包含3个源文件:STM32F10x.s、stm32f10x_it.c和main.c,其中STM32F10x.s为启动代码,所有中断 服务子程序均在stm32f10x_it.c,其它函数则...
  • 的作用 加锁机制、用锁保护状态、实现共享访问 锁的不恰当使用可能会引起程序性能下降 对象的共享使用策略 线程封闭:线程封闭的对象只能由一个线程拥有并修改 Ad-hoc线程封闭 栈封闭 ...
  • 单片机期末考试题目及答案详解

    热门讨论 2009-06-23 10:30:30
    对于由8031构成单片机应用系统,EA脚应接 ,中断响应并自动生成长调用指令LCALL后,应转向 去执行中断服务程序。 单选题: 1.80C51与8031区别在于 内部ROM容量不同 内部RAM容量不同 内部ROM类型不同 80C...
  • 51单片机自学笔记

    2016-07-27 22:24:19
    6.4.1 查询法定时50ms实现一个LED小灯闪烁88, 6.4.2 中断法定时50ms实现一个LED小灯闪烁91, 6.4.3 中断PK查询94, 6.4.4 延长定时时间96, 6.4.5 数字电子时钟99, 6.5 定时器定时和程序中的延时子程序DELAY有何不同...
  • PCI.EXPRESS系统体系结构标准教材.pdf

    热门讨论 2013-02-17 16:21:16
    1.1.1 初始pci解决方案的作用 1.2 与原有总线的比较 1.2.1 作者的声明 1.2.2 总线性能及其插槽数的比较 1.2.3 pci express的总吞吐量 1.2.4 比较每引脚的性能 1.3 i/o总线体系结构展望 1.3.1 基于33mhz pci总线的...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    此外,C语言程序具有完善模块程序结构,从而为软件开发采用模块化程序设计方法提供了有力保障。因此,使用C语言进行程序设计已成为软件开发一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且...
  • 76. ciadv.msc------索引服务程序 77. shrpubw--------创建共享文件夹 78. secpol.msc-----本地安全策略 79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统双重密码 80. services.msc---...
  • 当设定为[Enabled](启动)时,这个项目在系统电源开启之后,可加速POST(Power On Self Test)的程序。BIOS会在POST过程当中缩短或是跳过一些检查项目,从而加速启动等待时间! Hard Disk Boot Priority(硬盘...
  • 实际上 由于 P1.1 高电平输出电阻为 10K,起到输出限流的作用,所以流过 LED 的电流小于(5V-1V)/10K = 0.4mA。只要 P1.1 输出低电平 GND,实际小于 0.3V,LED 就不能导通,结果 LED 不亮。 开关双键的输入:输入先...
  • 另外在配置 AOP 切面之前,我们需要了解下 aspectj 相关注解的作用: @Aspect:声明该类为一个注解类; @Pointcut:定义一个切点,后面跟随一个表达式,表达式可以定义为切某个注解,也可以切某个 package 下...
  • 复旦nois教材01.rar

    2009-08-05 20:08:37
    2.2.7 生成Nios32 并把它加入到设计......................................................................23 2.2.8 把符号(symbol)加入到BDF文件..........................................................
  • 1、熟悉该程控交换原理实验系统的电路组成与主要部件的作用。 2、体会程控交换原理实验系统进行电话通信时的工作过程。 3、了解CPU中央集中控制处理器电路组成及工作过程。 二、 预习要求 预习《程控交换原理》与...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

中断服务程序中延时的作用