本帖最后由 摩天轮1111 于 2015-12-14 01:57 编辑
有这样一个情况,stm32里面假设我有两个中断,a和b,a中断是200hz频率触发一次,b中断是10k频率触发一次,现在优先级a要高,那么但是a中断里面有对传感器读数,需要时间,700us多,现在a触发的时候中断函数没执行玩完,b就会触发的,而且在a还在执行的过程中,b会触发好几次,我问题是,b这个触发了肯定在排队,因为中断标志位没有清除,b是在a执行完之后,只执行一次最近的一次的那个呢,还是把排队的那好几个都执行了,还是执行最早触发的那个,到底执行哪个?
问题二,比如b自己在跑中断时候,一进中断清除中断标志位,但是b执行到一半,b的中断又触发了,譬如定时器中断就可以这样,那么这时候,由于一开始进中断清除了标志位,执行到一半该中断自身又来了,这时候标志位是不是又被置1了?如果想出中断不执行在b中断内部执行时候触发的b中断,是不是出中断时候再清一次中断标志位且延时一点点让硬件清除了中断,然后这样出中断就不会执行b中断发生中间时候触发的那个b中断了?
手机打的,谢谢各位大神,欢迎大家分享自己实验结果
|