下载贤集网APP入驻自媒体
51单片机中断优先级问题 我现在的想法是:1、同为低优先级或者高优先级时,遵循 外部中断0->定时器/计数器T0->外部中断1->定时器/计数器T1->串口中断(优先级由高到低),的自然优先级,那么在同级优先级(同为高优先级或者同为低优先级)时在自然优先级里的低优先级可以被高优先级打断; 2、倘若设置外部中断0为高优先级,外部中断1为低优先级,那么高优先级可以打断低优先级,即外部中断0可以打断外部中断1; 3、在51单片机中设置优先级的寄存器为IP,IP有5位有效位,PS,PT1,PX1,PT0,PX0;且IP可以进行位寻址,现在只是用外部中断0以及1,就有两种对其优先级定义的方式,(设置同为高优先级时,IP=1和PX1=1、PX0=1;意义相同); 基于此我进行了验证: 按键K3(连接P3.2引脚,外都中断0),按键K4(连接P3.3引脚,外都中断1),LED灯连接在P2端口,设置其触发方式均为低电平触发; 1、分别设置外都中断0和1,为同级时查看中断的相互打断情况;2、分别设置外部中断0和1,为一个高另一个低时中断打断情况; 1、实验现象为: 1)、IP=0时,在运行外部中断0的中断服务函数时,外部中断1无法打断其运行,同样外部中断1的中断服务函数运行时,外部中断0无法打断; 2)、PX0=0、PX1=0时,在运行外部中断0的中断服务函数时,外部中断1无法打断其运行,同样外部中断1的中断服务函数运行时,外部中断0无法打断; 3)、IP=1时,在运行外部中断0的中断服务函数时,外部中断1无法打断其运行,外部中断1的中断服务函数运行时,外部中断0可以打断外部中断1; 4)、PX0=1、PX1=1时,在运行外部中断0的中断服务函数时,外部中断1无法打断其运行,同样外部中断1的中断服务函数运行时,外部中断0无法打断; 疑惑之处: 1、IP无论设置为1(高优先级)还是0(低优先级),都应遵循 【外部中断0->定时器/计数器T0->外部中断1->定时器/计数器T1->串口中断(优先级由高到低)】这一优先级,即在外部中断0的中断服务函数运行时,外部中断1应无法打断,明显实验现象 1)、2)、4),不符合 2、在对外部中断0和外部中断1的中断优先级设定时,可以使用IP,也可以PX0,PX1,但是实验现象中的 1)和2)不相统一,3)和4)不相统一 感谢,感谢,感谢