[应用相关] 摁一次键外部中断服务程序执行多次

[复制链接]
797|14
 楼主| xia00 发表于 2020-8-15 12:36 | 显示全部楼层 |阅读模式
原因是由于中断服务程序执行完后,按键还没有拉开,导致再一次进入中断
hfdy01 发表于 2020-8-15 12:36 | 显示全部楼层
不要用外部中断做按键输入,加延时不就好了。
CallReceiver 发表于 2020-8-15 12:41 | 显示全部楼层
按下时,程序进入中断处理后关掉中断,然后在主函数里面加一句判断:松手时再开外部中断..
boy1990 发表于 2020-8-15 12:43 | 显示全部楼层
外部中断弄成下降沿有效不就行了?
sourceInsight 发表于 2020-8-15 12:48 | 显示全部楼层
最好不要这样做吧,这样做按键消抖是个麻烦事情
bbapple 发表于 2020-8-15 12:51 | 显示全部楼层
应该不行,下降沿还是会被执行多次。
zhouhuanの 发表于 2020-8-15 12:57 | 显示全部楼层
还是在中断里加个延时函数好点
wanglaojii 发表于 2020-8-15 13:02 | 显示全部楼层
在中断里延时最傻的做法,不仅解决不了你的问题,还把中断的优点了用成了缺点。
laozhongyi 发表于 2020-8-15 13:05 | 显示全部楼层
但是如果我一直按着这个键不放那你不就一直是死在那里了。
Edisons 发表于 2020-8-15 13:09 | 显示全部楼层
外部中断比较快啊。而且这个看MCU的资源的,难道非要用定时器吗?
_gege 发表于 2020-8-15 13:12 | 显示全部楼层
状态机啊,用定时器,不浪费CUP时间。
Mozarts 发表于 2020-8-15 13:16 | 显示全部楼层
有2个方法,按键可以通过中断来做,也可以用中断查询方式。中断的方式需要使用去抖来做,也可以在中断里通过I/O口的状态来判断。
Listate 发表于 2020-8-15 13:19 | 显示全部楼层
进入中断后先关闭总中断然后判断完了,再开启退出。。
feiqi1 发表于 2020-8-15 13:23 | 显示全部楼层
对于低功耗场合,按键是用来唤醒的,所以必须使用中断
androidbus 发表于 2020-8-15 13:26 | 显示全部楼层
进中断后关中断,同时开定时器扫描消抖,获得有效按键,等待按键弹起后再开按键对应中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

179

主题

1867

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部