C51中断优先级问题

2019-03-24 20:08发布

请教大家一个关于C51中断的问题。 假设一个C51系统开启了INT1,INT2,INT3三个中断,软件设定的优先级是相同的(硬件优先级是INT1>INT2>INT3),系统发生了INT2中断并进入了中断服务程序;在INT2中断服务退出之前,依次发生了INT3和INT1,INT2中断;因为它们的软件优先级是相同的,所以INT3和INT1的终端服务会在INT2的中断服务返回之后执行,问题是,INT3和INT1、INT2的中断服务执行顺序是怎样的? 我用了Keil仿真,设定INT1=外部中断0(Ex0),INT2=Timer0中断(T0),INT3=Timer1(T1)中断 在Ex0中断服务中,(刚进入中断服务程序时,Ex0的中断标志就被清除了,),依次发生Timer1,外部中断0,Timer0,第一个INT2返回之后,调用顺序依次是,外部中断0,Timer0,Timer1(硬件默认的优先级)   问题1,在中断服务程序中,发生了几个中断,它们是怎样判断的? 问题2,不局限于C51,CPU清除中断标志的时机,是在刚进入服务程序时(C51跳入中断向量),还是在中断返回(C51执行IRET指令)时 此帖出自小平头技术问答
0条回答

一周热门 更多>