怎么解决这种现象

[复制链接]
 楼主| yinxiangh 发表于 2012-6-9 10:25 | 显示全部楼层 |阅读模式
摁一次键,外部中断服务程序执行多次,原因是由于中断服务程序执行完后,按键还没有拉开,导致再一次进入中断
chenjunt 发表于 2012-6-9 10:26 | 显示全部楼层
不要用外部中断做按键输入
liuzaiy 发表于 2012-6-9 10:29 | 显示全部楼层
加延时不就好了。
morrisk 发表于 2012-6-9 10:29 | 显示全部楼层
你按下时,程序进入中断处理后关掉中断,然后在主函数里面加一句判断:松手时再开外部中断
dingy 发表于 2012-6-9 10:32 | 显示全部楼层
外部中断弄成下降沿有效不就行了?
renyaq 发表于 2012-6-9 10:32 | 显示全部楼层
最好不要这样做,这样做按键消抖是个麻烦事情
 楼主| yinxiangh 发表于 2012-6-9 10:58 | 显示全部楼层
外部中断弄成下降沿有效不就行了?
dingy 发表于 2012-6-9 10:32
不行,下降沿还是会被执行多次
zyf部长 发表于 2012-6-9 10:58 | 显示全部楼层
还是在中断里加个延时函数好点
司徒老鹰 发表于 2012-6-9 11:01 | 显示全部楼层
在中断里延时最傻的做法,不仅解决不了你的问题,还把中断的优点了用成了缺点。
如果我一直按着这个键不放那你不就一直是死在那里了。
 楼主| yinxiangh 发表于 2012-6-9 11:01 | 显示全部楼层
好的,不敢用了
supernan 发表于 2012-6-9 11:04 | 显示全部楼层
2楼和我们经理一样的思路。不过为什么不可以?
supernan 发表于 2012-6-9 11:04 | 显示全部楼层
外部中断比较快啊。而且这个看MCU的资源的,难道非要用定时器吗?定时器是好东西,干吗不留着慢慢用。
 楼主| yinxiangh 发表于 2012-6-9 11:06 | 显示全部楼层
嗯,我再考虑考虑吧,先结贴了
 楼主| yinxiangh 发表于 2012-6-9 11:06 | 显示全部楼层
多谢大家各抒己见
lksheng 发表于 2012-6-9 13:19 | 显示全部楼层
按键消抖比较麻烦
zd420325 发表于 2012-6-9 15:07 | 显示全部楼层
状态机啊,用定时器,不浪费CUP时间。

评分

参与人数 1威望 +1 收起 理由
nongfuxu + 1

查看全部评分

爱之翼V 发表于 2012-6-10 15:28 | 显示全部楼层
公有公理,婆有婆理,看上去都有理,不如来个实践出真理!
peter_zheng 发表于 2012-6-10 19:39 | 显示全部楼层
有2个方法,按键可以通过中断来做,也可以用中断查询方式。中断的方式需要使用去抖来做,也可以在中断里通过I/O口的状态来判断。
牛狼苦丁 发表于 2012-6-10 20:46 | 显示全部楼层
RS触发器消抖动。
gaoyang9992006 发表于 2012-6-11 12:40 | 显示全部楼层
这个问题太简单了吧?进入中断后先关闭总中断然后判断完了,再开启退出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

723

主题

7134

帖子

2

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