Board logo

标题: PIC18F452的同时中断的问题 [打印本页]

作者: DirectCG    时间: 2009-2-16 15:46     标题: PIC18F452的同时中断的问题

如果两个相同优先级的AB中断同时产生中断或者在A中断正在执行时产生另外一个中断B的话,是否两个中断都能够执行?


作者: kennan    时间: 2009-2-16 18:10

我没用过PIC的处理器,建议自己看一下所用处理器的datasheet。但是一般来讲,两个中断源都会在对应的寄存器里面有相应的中断标志位,比如A 和B 的标志位分别为FlagA,和FlagB,如果中断同时来,那么FlagA和FlagB都会置位,假设中断A先运行,你应该在A的ISR中清除FlagA,这样A的ISR退出后又会发现FlagB还置位呢,就会执行B的ISR,原则上在B的ISR中清除FlagB。当然了,你要是在A的ISR中清除了FlagB,那么B的ISR就没机会执行了。写程序的时候要注意,FlagA和FlagB的寄存器是否在一个字节上,如果是这样的话,清除相应的Flag的时候别误清了别人的。另外,如果A和B分别是对应自己的中断线,可能会进入中断服务程序就会自动清除flag,比如MCS51单片机的非UART中断。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0