当前位置:文档之家› 飞思卡尔HC12系列中断模块讲解

飞思卡尔HC12系列中断模块讲解

HCS12中断
默认状态::
•默认状态
在进入中断服务程序时,,I位自动置1,禁止其他可屏蔽中断
–在进入中断服务程序时
即使有优先级更高的中断请求,,也必须等当前中断服务程序执行完以后才–即使有优先级更高的中断请求
能响应
–优先级的作用只有在多个中断源同时请求中断时在能体现
–无法实现中断嵌套
位清零::
如果在进入中断服务程序时,,手动对I位清零
•如果在进入中断服务程序时
任何其他可屏蔽中断都可以被响应,,无论其优先级有多高
–任何其他可屏蔽中断都可以被响应
中断响应由时间控制,,可以实现中断嵌套
–中断响应由时间控制
–对中断执行无法预测
•HPRIO寄存器
中的中断向量的后八位,,可以改变该中断的优先级–写入HPRIO中的中断向量的后八位
同样,,优先级的作用只有在多个中断源同时请求中断时在能体现
–同样
中断优先处理机制
1.在中断服务程序中,首先对I为清零,即EnableInterrupts
2.选择优先级更高的中断源可以进入响应中断
3.设置优先等级
–两级
•一个中断源为低优先级,其他为高优先级
•在低优先级中断服务程序中,对I位清零
•在高优先级中断服务程序中,不清零
–多级
•利用局部的中断屏蔽位
•比如Timer Channel0 的中断屏蔽位TIE_C0I
优先机制–多级
•情况1:
–每个中断都单独发生,在一个中断程序执行时,没有其他中断
•情况2:
–在执行ECT1的中断服务程序时,ECT0请求中断
–ECT0中断服务程序将被执行
•情况3:
–在执行ECT2的中断服务程序时,ECT0请求中断
–ECT2的中断服务程序执行结束后,执行ECT0的中断服务程序•情况4:
–ECT1,ECT2同时请求中断
–ECT1的中断服务程序先执行,当EnableInterrupts后
–执行ECT2的中断服务程序
–ECT2的中断服务程序执行结束后,返回执行ECT1的中断服务程序
方案:优先机制–多级
•在ECT0中断服务程序中:
•在ECT1中断服务程序中(自定义优先级最低):
•在ECT2中断服务程序中(自定义优先级最高):
–用户程序
TIE_C1I = 0; //关闭ECT1局部中断TIE_C2I = 1; //开放ECT2局部中断EnableInterrupts; //开放全局中断…
TIE_C1I = 1; //开放ECT1局部中断TIE_C2I = 1; //开放ECT2局部中断
TIE_C0I = 1; //开放ECT0局部中断TIE_C2I = 1; //开放ECT2局部中断EnableInterrupts; //开放全局中断…
TIE_C0I = 1; //开放ECT0局部中断TIE_C2I = 1; //开放ECT2局部中断。

相关主题