找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 422|回复: 5
打印 上一主题 下一主题
收起左侧

5毫秒定时器中断函数里判断按键是否按下 还要做消抖处理吗。

[复制链接]
跳转到指定楼层
楼主
ID:709761 发表于 2025-3-26 15:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:744809 发表于 2025-3-26 16:37 | 只看该作者
你可以在中断里计数,按下超过50ms才当成真正按下,不要用delay
回复

使用道具 举报

板凳
ID:879809 发表于 2025-3-26 16:58 | 只看该作者
当然要去抖,5ms中断发现连续两次按下才认为是按下。
回复

使用道具 举报

地板
ID:57657 发表于 2025-3-27 09:01 | 只看该作者
定义一个1毫秒定时器中断以及unsigned char变量用于时间计数)长按检测用unsigned int)。

按键按住后开始毫秒计数(加满后停止计数否则会溢出),松开清零,计数大于等于消抖时间为有效按键一般25毫秒即可,大型按键抖动时间可能更长。
回复

使用道具 举报

5#
ID:1034262 发表于 2025-3-27 14:15 | 只看该作者
5ms台短,20~50ms合适,每次读入都跟上一次比较,可以避开抖动。
回复

使用道具 举报

6#
ID:1146853 发表于 2025-4-1 17:04 | 只看该作者
扫描发现按键后,设标志,启动20-50ms定时器。定时器中断中再检查按键是否还按下,按下按键有效。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表