找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 707|回复: 5
收起左侧

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

[复制链接]
ID:709761 发表于 2025-3-26 15:51 | 显示全部楼层 |阅读模式
谢谢大家
回复

使用道具 举报

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毫秒即可,大型按键抖动时间可能更长。
回复

使用道具 举报

ID:1034262 发表于 2025-3-27 14:15 | 显示全部楼层
5ms台短,20~50ms合适,每次读入都跟上一次比较,可以避开抖动。
回复

使用道具 举报

ID:1146853 发表于 2025-4-1 17:04 | 显示全部楼层
扫描发现按键后,设标志,启动20-50ms定时器。定时器中断中再检查按键是否还按下,按下按键有效。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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