再一次进入中断

[复制链接]
 楼主| songqian17 发表于 2017-10-21 18:11 | 显示全部楼层 |阅读模式
中断服务程序执行完后,按键还没有拉开,导致再一次进入中断
aozima 发表于 2017-10-22 13:30 | 显示全部楼层
类似的问题,常用的解决方案:
1. 在中断退出时才清中断。
2. 使用边沿中断而不是电平中断
3. 在中断里面关中断,独立的延时防抖程序中再次打开中断。
chenho 发表于 2017-10-22 14:23 | 显示全部楼层
不要用外部中断做按键输入
gongche 发表于 2017-10-22 14:38 | 显示全部楼层

加延时不就好了。
huwr 发表于 2017-10-22 14:41 | 显示全部楼层
你按下时,程序进入中断处理后关掉中断,然后在主函数里面加一句判断:松手时再开外部中断
huanghuac 发表于 2017-10-22 14:43 | 显示全部楼层
外部中断弄成下降沿有效不就行了?
happy_10 发表于 2017-10-22 15:18 | 显示全部楼层
最好不要这样做,这样做按键消抖是个麻烦事情
tian111 发表于 2017-10-22 15:21 | 显示全部楼层
不行,下降沿还是会被执行多次
chenho 发表于 2017-10-22 15:25 | 显示全部楼层
还是在中断里加个延时函数好点
gongche 发表于 2017-10-22 15:28 | 显示全部楼层

在中断里延时最傻的做法,不仅解决不了你的问题,还把中断的优点了用成了缺点。
如果我一直按着这个键不放那你不就一直是死在那里了。
huwr 发表于 2017-10-22 15:31 | 显示全部楼层
外部中断比较快啊。而且这个看MCU的资源的,难道非要用定时器吗?定时器是好东西,干吗不留着慢慢用。
huanghuac 发表于 2017-10-22 15:35 | 显示全部楼层

呵呵,我也遇到过类似的问题。可以让程序多次进中断没有关系。不过中断函数里要赋值一个全局变量,中断进入后设置全局变量。
happy_10 发表于 2017-10-22 15:39 | 显示全部楼层
在中断外面的循环里读中断管教的状态,如果没有低电平(按键松开),则把全局变量再清0,这样相当是把延时放在外面
bqyj 发表于 2017-10-22 15:58 | 显示全部楼层

按键中断用在有低功耗需求的场合,其他情况下没必要用
tian111 发表于 2017-10-22 16:01 | 显示全部楼层
加个软件去抖就应该是可以的。。。。
zhuhuis 发表于 2017-10-22 16:30 | 显示全部楼层
加个延时吧,这个可以试试看。
wenfen 发表于 2017-10-22 16:34 | 显示全部楼层

给外部中断加上一个延时吧。。
 楼主| songqian17 发表于 2017-10-22 16:36 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

463

主题

5749

帖子

1

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