打印

摁一次键外部中断服务程序执行多次

[复制链接]
433|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaoxqi|  楼主 | 2019-2-20 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
spark周| | 2019-2-20 11:07 | 只看该作者

不要用外部中断做按键输入

使用特权

评论回复
板凳
spark周| | 2019-2-20 11:11 | 只看该作者
加延时不就好了。

使用特权

评论回复
地板
liliang9554| | 2019-2-20 11:15 | 只看该作者
你按下时,程序进入中断处理后关掉中断,然后在主函数里面加一句判断:松手时再开外部中断

使用特权

评论回复
5
huangchui| | 2019-2-20 11:19 | 只看该作者


外部中断弄成下降沿有效不就行了?

使用特权

评论回复
6
zhenykun| | 2019-2-20 11:25 | 只看该作者
最好不要这样做,这样做按键消抖是个麻烦事情

使用特权

评论回复
7
zhaoxqi|  楼主 | 2019-2-20 11:32 | 只看该作者
不行,下降沿还是会被执行多次

使用特权

评论回复
8
heweibig| | 2019-2-20 11:37 | 只看该作者


还是在中断里加个延时函数好点

使用特权

评论回复
9
jiahy| | 2019-2-20 11:42 | 只看该作者

在中断里延时最傻的做法,不仅解决不了你的问题,还把中断的优点了用成了缺点。
如果我一直按着这个键不放那你不就一直是死在那里了。

使用特权

评论回复
10
zhaoxqi|  楼主 | 2019-2-20 11:46 | 只看该作者
好的,不敢用了

使用特权

评论回复
11
shimx| | 2019-2-20 11:49 | 只看该作者
2楼和我们经理一样的思路。不过为什么不可以?

使用特权

评论回复
12
jiaxw| | 2019-2-20 11:51 | 只看该作者
外部中断比较快啊。而且这个看MCU的资源的,难道非要用定时器吗?定时器是好东西,干吗不留着慢慢用。

使用特权

评论回复
13
spark周| | 2019-2-20 11:55 | 只看该作者
状态机啊,用定时器,不浪费CUP时间。

使用特权

评论回复
14
huangchui| | 2019-2-20 11:58 | 只看该作者

有2个方法,按键可以通过中断来做,也可以用中断查询方式。中断的方式需要使用去抖来做,也可以在中断里通过I/O口的状态来判断。

使用特权

评论回复
15
jiajs| | 2019-2-20 12:01 | 只看该作者

RS触发器消抖动。

使用特权

评论回复
16
huangchui| | 2019-2-20 12:05 | 只看该作者
这个问题太简单了吧?进入中断后先关闭总中断然后判断完了,再开启退出

使用特权

评论回复
17
zhenykun| | 2019-2-20 12:07 | 只看该作者
对于低功耗场合,按键是用来唤醒的,所以必须使用中断,那么可以这么做,进中断后关中断,同时开定时器扫描消抖,获得有效按键,等待按键弹起后再开按键对应中断

使用特权

评论回复
18
zhaoxqi|  楼主 | 2019-2-20 12:11 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

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

本版积分规则

808

主题

10636

帖子

4

粉丝