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

怎么用单片机准确获取按键按下的时长

宇智波白 2020-02-14 浏览量:1370
怎么用单片机准确获取按键按下的时长
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 介绍一个我们在实际项目做用过的思路,用外部中断捕获IO的边沿信号,检测到边沿信号就打开定时器计时,当边沿稳定10ms以上表示按键已经触发,如果在10ms有重复触发,以最后一次边沿触发开始计时为准,当检测到边沿信号再次反向跳变,中止计时,这个时间就是按键按下的时间
    • 发布于 2020-02-20
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 检测引脚电平,边沿触发定时计时,比如按键按下,引脚由高电平转为低电平,触发定时器计时,当按键释放引脚电平由低到高,停止计时,读数,需要选择合适的定时器。
    • 发布于2020-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 用外部中断和计数器的办法时间,开启外部中断,当按键按下进入外部中断函数这个时候开启定时计数器计数功能,然后在主函数里面判断按键抬起停止计数器,读出计数个数,然后÷单片机计数器频率就是时间,注意定时器溢出控制需要自己加计数变量
    • 发布于2020-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个精确要看精度要求,一般就是按下后触发一个计数器开始计数,释放时停止计数,读取计数值*计数步进周期时间 即可得到数据。

    这里要注意这样一些问题:

    1. 触发信号的获取,比如采用中断模式

    2. 计数器步进周期的选择(频率选择)——和计数器特性(位宽)及精度要求有关,周期越短的精度越高,但又更可能需处理溢出情况

    • 发布于2020-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用定时器与外部中断的方式

    中断函数中读取定时器寄存器的值来计算时间

    • 发布于2020-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用单片机的外部IO中断加定时器会比较准确
    • 发布于2020-02-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接在按键后进行中断定时,这个定时的时间就是按键按下的时间
    • 发布于2020-02-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

怎么用单片机准确获取按键按下的时长