首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

PIC18F452的同时中断的问题

PIC18F452的同时中断的问题

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

我没用过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中断。
返回列表