• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

如何检测独立按键按下的时间

8fe6551efa880dc9 2019-12-11 浏览量:1456
当独立按键按下时间大于0.2s时执行操作,怎么检测按键按下时间呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 用延时判断,按下按键后等待200ms后再次检测按键如果还是按下状态就执行。或者通过使用外部中断和定时器判断,按下按键后开启定时器中断,定时器到了200ms后中断,在定时中断函数里面再次判断按键,并且返回按下标志位给主循环用,或者在定时中断里面执行
    • 发布于 2019-12-12
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:12
  • 按键接以中断,当进中断后打开定时器,定时200ms到时间进定时器中断。
    • 发布于2019-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个有很多处理方式,标准的就是利用专门的中断来检测按下时间是否符合,简单的可以用延迟时间(计数空语句)后再检测是否按下来判断。
    • 发布于2019-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 检测一个上升沿,一个下降沿,计算上升沿跟下降沿之间的时间差判断按下时间是否是符合要求
    • 发布于2019-12-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用定时器的捕获功能,检测上升沿与下降沿的时间差,就可以判断按键按下的时间了
    • 发布于2019-12-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果检查按下去的时间可以用定时器去做,外部触发开始计时
    • 发布于2019-12-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的独立按键如果仅仅是区别短按,长按的话,其实没有必要这么那么精确,看这个帖子

    https://bbs.icxbk.com/thread-102588-1-1.html

    这个是我目前发现最经典的按键程序。


    如果你需要精确延时0.2s,那就只用将这个按键接到外部中断上,当中断触发后,在中断函数里面打开定时器,

    通过定时器计时200ms

    • 发布于2019-12-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 设置一个定时器 如果按键按下时 启动定时器同时标志位置1 定时器定时到0.2s时

    通过判断定时标志位就能判断是不是到了0.2s

    • 发布于2019-12-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 按键接GPIO中断,中断中打开定时器,定时时间到0.2s后,进定时器中断,测量出时间
    • 发布于2019-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用IO双边沿触发中断,一个边沿中断触发后使能一个定时器,当触发另一个边沿中断时停止计时
    • 发布于2019-12-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以对你的按键进行计时,当检测到按下的时间超过你定时的时候进执行操作
    • 发布于2020-01-14
    • 举报
    • 评论 0
    • 0
    • 0

    • 用单片机的定时器边沿捕获,然后记录下两个边沿的时间。这个时间就是按键按下的时间
    • 发布于2020-01-16
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

如何检测独立按键按下的时间