中断疑惑

2019-07-21 07:12发布

问下大家,假如我在中断函数里加个延时,在这个延时的过程中又触发了一次一样的中断,那等到中断函数处理完后,还会再进入中断吗?如果触发更高优先级的中断呢?谢谢


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
zc123
2019-07-21 08:32
1.中断触发的流程是 信号源触发->置相应的中断标志位->相应中断位使能,则触发中断,因此根据清中断标志位置决定是否继续触发
方式一:
clr_int
delay延时(再次触发中断,中断标志位置位)
中断退出,此时中断标志位仍然置位,继续触发中断,不影响
方式二:
delay延时(再次触发中断,中断标志位置位)
clr_int
中断退出,此时再次触发的中断标志位就被清了,丢失
2.触发更高等级中断和delay在某些状态下效果一致,同上。所以一般进中断后读取标志位后就清中断,然后在处理,这样连续两次触发的相同中断不容易漏掉

一周热门 更多>