《第28讲外部中断》中断函数里是否有必要加低电平判断?

2019-07-20 23:50发布

本帖最后由 talent568 于 2016-2-5 23:52 编辑

学习原子哥的外部中断那节课时,没有想明白在中断服务函数里加if(KEY0==0)的原因
如果函数EXTI4_IRQHandler( )执行了,那里边的语句肯定可以执行,也就达到中断的目的了
如果函数EXTI4_IRQHandler( )没有执行,里边的if(KEY0==0)也不会执行,请指点加if(KEY0==0)的必要性在哪里?谢谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
FantaSy_
1楼-- · 2019-07-21 00:58
 精彩回答 2  元偷偷看……
talent568
2楼-- · 2019-07-21 04:44
FantaSy_ 发表于 2016-2-6 08:52
去抖!!!

加delay_ms(10) 、if (KEY0==0)这两句难道是为了排除外部干扰产生的抖动?
Watmin
3楼-- · 2019-07-21 05:25
消抖。。
FreeRTOS
4楼-- · 2019-07-21 10:06
 精彩回答 2  元偷偷看……
q546163199
5楼-- · 2019-07-21 14:31
FreeRTOS 发表于 2016-2-7 11:22
是的,就是为了消抖,不过我一般不在中断里面消抖,一般只会在中断里面置位某个标志,然后在中断外面判断 ...

不过,我觉得在中断里面,设置消抖延时处理,更加合理下吧?,毕竟如果在中断里面设置消抖得话,其实就和按键检测试验,没啥区别了,无非就是一个在主程序里面消抖,一个是在中断服务函数中,消抖。
我也是新手,这是我的个人见解,啊O(∩_∩)O哈哈~
FreeRTOS
6楼-- · 2019-07-21 18:46
q546163199 发表于 2016-2-7 11:31
不过,我觉得在中断里面,设置消抖延时处理,更加合理下吧?,毕竟如果在中断里面设置消抖得话,其实就和 ...

如果你在中断里面消抖,就必须在里面加个delay_ms(10)来死延时,这对实际应用而言是非常不可取的,尤其是跑系统时,这个死延时会导致操作系统的中断一直处于挂起状态(系统中断优先级一般设为最低,无法抢占其他中断)

一周热门 更多>