打印

这种情况下请问如何去

[复制链接]
795|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanwe|  楼主 | 2022-4-17 22:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
软件去抖一般都是在IO状态变化后进行短暂延时.如果我将按键接在单片机的外部中断INT引脚之上,此时采用中断的方法判断是否按键按下,在这种情况下请问如何去抖,不可能说在中断服务程序内做延时后,又重新查询吧!!

使用特权

评论回复
沙发
heweibig| | 2022-4-17 22:59 | 只看该作者
定时器

使用特权

评论回复
板凳
jlyuan| | 2022-4-17 23:01 | 只看该作者
同意3L的说法,用定时器查询外部中断引脚上的电平变化,判断是否有按键按下,不需要用延时!!!如果是短按键的话,按键是松手检测,

使用特权

评论回复
地板
chuxh| | 2022-4-17 23:03 | 只看该作者
我都是在循环里每过几次循环查询一下,因为那些按键功能大部分都在主循环里处理,上升沿下降沿,长按短按,主循环只偶尔会来一次几个毫秒的处理,对于按键来说根本就不是事

使用特权

评论回复
5
supernan| | 2022-4-17 23:05 | 只看该作者
实际情况是因为抖动的问题,单片机会多次进入中断。你用还不如不用

使用特权

评论回复
6
supernan| | 2022-4-17 23:07 | 只看该作者
或者进入中断后,触发一个按键检测标志在在主程序里去抖动。这样做的惟一好处是按键有的时候可以唤醒单片机。

使用特权

评论回复
7
zwll| | 2022-4-17 23:11 | 只看该作者
实践出真知,楼主加油

使用特权

评论回复
8
hanwe|  楼主 | 2022-4-17 23:14 | 只看该作者
定时器?思路是什么 ??

使用特权

评论回复
9
tian111| | 2022-4-17 23:18 | 只看该作者
定时5ms,每中断一次判断一次状态,如果第一次按下,第二次检测又按下,表明已按下,两次之间算消抖。第三次检测释放。

使用特权

评论回复
10
xxrs| | 2022-4-17 23:20 | 只看该作者
用状态机的方法很好

使用特权

评论回复
11
zhenykun| | 2022-4-17 23:24 | 只看该作者
片外加个RC电路,或者施密特门,硬件去抖动。

使用特权

评论回复
12
chuxh| | 2022-4-17 23:26 | 只看该作者
键扫优先考虑定时扫描。

使用特权

评论回复
13
renyaq| | 2022-4-17 23:29 | 只看该作者
串口助手收不到回来的数据

使用特权

评论回复
14
hanwe|  楼主 | 2022-4-17 23:33 | 只看该作者
示波器看看电压

使用特权

评论回复
15
zhenykun| | 2022-4-17 23:34 | 只看该作者
示波器观察了51 tx处有电位变化

使用特权

评论回复
16
llljh| | 2022-4-17 23:36 | 只看该作者
检查硬件,软件

使用特权

评论回复
17
pengf| | 2022-4-17 23:38 | 只看该作者
串口助手设置对不对,试试勾选16进制显示

使用特权

评论回复
18
xxrs| | 2022-4-17 23:40 | 只看该作者
哦?我看下哈

使用特权

评论回复
19
supernan| | 2022-4-17 23:42 | 只看该作者
按键用中断真不好,浪费资源,还不好处理

使用特权

评论回复
20
yszong| | 2022-4-17 23:44 | 只看该作者
直接用定时中断扫描或主循环扫描

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

979

主题

8749

帖子

4

粉丝