fbj 发表于 2024-5-15 16:56:55

两个中断同时进入,中断A关闭了中断B的中断源,中断A执行完后,还会进入中断B吗

两个中断同时进入,两者优先级一样,中断A关闭了中断B的中断源,中断A执行完后,还会进入中断B吗

晓飛飛 发表于 2024-5-15 17:04:40

中断优先级相同的情况下,也不可能两个中断同时进入,因为还有中断向量号的顺序差异,在进入中断A后,如果关闭中断B的使能,那不可能再进入中断B了,即使在此过程中中断B也被触发也只是中断标记位被置位,并不能产生中断事件。

Rain_Personal 发表于 2024-5-15 17:56:27

中断号靠前的先执行,执行完再执行后面的中断,最后回到主程序

soma 发表于 2024-5-15 19:29:50

看B中断是否触发,有触发A结束后就会执行B,没有触发就不会在执行

小飞侠 发表于 2024-5-16 09:24:16

如果中断A关闭了中断B的中断源,中断A执行完后,不会进入中断B了,如果不关的话,A执行完成后自动执行B

神农鼎 发表于 2024-5-16 09:51:18

【两个中断同时进入,两者优先级一样,中断A关闭了中断B的中断源,中断A执行完后,还会进入中断B吗】
===你的描述有模糊

答:描述有模糊
【中断A关闭了中断B的中断源】


===你的描述有模糊
===1,清除了中断B的中断请求标志 ?
            那就因该不再去响应B的中断请求

===2,不允许中断B的中断使能允许位 ?
            ?这个查下

zhp 发表于 2024-5-16 10:11:37

希望你能完整描述一下你的问题,这样大家可以更准确的回答你
使用的是什么型号的单片机?
在中断A关闭了中断B的中断源,是关闭中断B中断使能位还是中断请求位?

一般来说,如果中断A和中断B的优先级相同,则进入了中断A,在中断A返回前不会再进中断B
只要在中断A中没有清除中断中断B的中断请求位,中断A执行完成并返回后,
等待一个时钟后会立即进入中断B;如果清掉了中断B的中断请求位,则不会响应中断B !!!

另外有一个特殊情况,
STC15系列、STC12H、STC8C、STC8G
以及STC8H系列中的STC8H1K08系列、STC8H1K28系列、STC8H3K64S2/S4系列
对于TIMER2/TIMER3/TIMER4这3个中断
当软件关闭中断使能位时,硬件会自动清除掉中断请求位 !
这种情况下,在中断A中如果软件只是关闭了中断使能位,由于硬件会自动将中断请求位清除调,
那么即使在中断A返回前有重新打开中断B的中断使能位,也是不会再响应中断B的

fbj 发表于 2024-5-16 12:07:48

zhp 发表于 2024-5-16 10:11
希望你能完整描述一下你的问题,这样大家可以更准确的回答你
使用的是什么型号的单片机?
在中断A关闭了中 ...

STC8G,外部中断和定时器0中断先后进入,外部中断中关闭了定时器(TR0=0),外部中断执行完毕后,还会进入定时器0中断吗?

fbj 发表于 2024-5-16 12:08:17

神农鼎 发表于 2024-5-16 09:51
【两个中断同时进入,两者优先级一样,中断A关闭了中断B的中断源,中断A执行完后,还会进入中断B吗】
===你 ...

STC8G,外部中断和定时器0中断先后进入,外部中断中关闭了定时器(TR0=0),外部中断执行完毕后,还会进入定时器0中断吗?

zhp 发表于 2024-5-16 13:28:14

fbj 发表于 2024-5-16 12:08
STC8G,外部中断和定时器0中断先后进入,外部中断中关闭了定时器(TR0=0),外部中断执行完毕后,还会进 ...

对于定时器0,只要你不清TF0
外部中断执行完毕后,会进入定时器0中断
页: [1] 2
查看完整版本: 两个中断同时进入,中断A关闭了中断B的中断源,中断A执行完后,还会进入中断B吗