美文网首页
【按键检测与防抖】

【按键检测与防抖】

作者: 大魔王是本人 | 来源:发表于2017-04-16 12:12 被阅读71次

单片机通常是已知按键不按时IO口的电平(如高电平),当IO口电平发生改变时(如低电平),则开启定时器进行延时,延时20ms后再次读取IO口的电平,若仍为低电平,则说明有按键按下;若为高电平,则说明是按键抖动,没有按键按下。

通过读取相邻2个时钟周期内IO口的电平值并进行比较,若电平值发生改变(此代码中是判断电平从0变为1),则计数器清零,若持续20ms后电平值没有发生改变,则读取按键的键值,同时将这一键值存储起来,当下一个20ms后再次读取键值,将2次键值进行比较,若键值发生改变,则说明按键有动作(要么按下,要么松手)。此代码中是判断键值从0变为1,即松手检测。

假设采集时钟的周期小于20ms,那么,采集时钟就有可能两次采到按键断开时的不确定的值,就没有办法避免采用CDC电路所想避免的问题。所以采集时钟的周期必须要大于20ms。假设采集时钟的周期大于120ms的话,就有可能采不到按键的闭合信号,所以采集时钟的周期必须小于120ms。我们在这里选用周期为25ms的采集时钟(频率为40Hz)

来源:

http://blog.csdn.net/a8039974/article/details/26928251

http://blog.sina.com.cn/s/blog_72c14a3d010150m4.html

相关文章

  • 【按键检测与防抖】

    单片机通常是已知按键不按时IO口的电平(如高电平),当IO口电平发生改变时(如低电平),则开启定时器进行延时,延时...

  • Android按键事件

    一、按键事件App开发对按键事件的检测与处理,主要包括如何检测控件对象的按键事件、如何检测活动页面的物理按键、以返...

  • 按键控制LED灯亮灭(STM 32)

    检测按键按下与否,进而做出相应的消息响应,按键与IO口和GND相连。

  • 按键防抖(多次点击触发)

  • javaScript 防抖函数

    一. 防抖函数的定义与使用 防抖函数的定义 防抖函数的调用 二. 防抖函数应用场景 其实在HTML 和javaSc...

  • 函数节流与函数防抖

    函数节流与函数防抖的区别JS魔法堂:函数节流(throttle)与函数去抖(debounce)函数的防抖与节流 自...

  • Unity3D 学习笔记(三) 增加跳跃

    补充按键 public string keyJump = "space"; 检测按键的下降沿 jump = Inp...

  • 函数防抖与节流

    函数防抖与节流 函数防抖与节流是很相似的概念,但它们的应用场景不太一样。 函数防抖: 任务频繁触发的情况下,只有任...

  • iOS防抖音网络检测

    当我们app的量级上去的时候,用户分布在全国各地。我们经常收到客服反馈的各种奇奇怪怪的问题。(小朋友你是否有很多问...

  • 索尼机身防抖和镜头防抖

    索尼微单系统拥有带防抖功能的机身和带防抖功能的镜头。无论防抖组件位于哪里,它们都属于光学防抖。 机身防抖 机身防抖...

网友评论

      本文标题:【按键检测与防抖】

      本文链接:https://www.haomeiwen.com/subject/qffoattx.html