外部中断有时进入两次

发布: 2010-3-28 22:40 | 作者: yqylove | 来源: StmFans思蜕盟 OPELC 自由电子联盟

我欲使用按键触发EXITx,下降沿触发,使用了内部上拉,全速运行时,按键按下有时会进入两次中断,单步调试时,断点设在中断程序的开始处中断进一次,若设在最后,会进入两次,但第一次结束时,已清了中断挂起位,在寄存器观察窗里也可见第二次进入的中断,中断挂起位并没挂起,请大家帮帮我
binglin (2010-3-28 22:49:03)
按键电路有没有做硬件防抖动功能?如果没有则进入N次都有可能。
win2000_li (2010-3-29 14:19:52)
用外部中断还要用去抖吗???

在中断里怎么去抖呢??

请指点。。。。。。。。
binglin (2010-3-29 15:00:33)
最简单的硬件去抖动的做法就是..............在按键的引脚并只小电容(0.001~0.1uF)。
win2000_li (2010-3-29 15:27:03)
我的意思软件噻!!!!

并且不可能在中断里加延时吧!!!

所以请指点。。。。。。。。
binglin (2010-3-29 15:47:08)
中断里不应加延时。

最简单的:可以设置一个计时的变量(计时值,例如10mS),第一次进入后设置该变量,以后进入时检查该值是否为零,如果不为零则不做任何处理返回,如果为零则进行处理。

以此为基本思路,win2000_li可以设计一个更合理、更可靠的方案。

我个为认为,但最好的办法还是在硬件上来处理。
catwill (2010-3-30 06:57:10)
如果仅仅为了实现按键功能的话,可以用定时扫描IO状态的办法~
win2000_li (2010-3-30 13:34:25)
谢谢指点。。。。。。。。。。。