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

[求助]TIM的自由计数器的溢出中断

HCS12中断
默认状态:
在进入中断服务程序时,I位自动置1,禁止其他可屏蔽中断
即使有优先级更高的中断请求,也必须等当前中断服务程序执行完以后才能响应
优先级的作用只有在多个中断源同时请求中断时在能体现
无法实现中断嵌套

如果在进入中断服务程序时,手动对I位清零:
任何其他可屏蔽中断都可以被响应,无论其优先级有多高
中断响应由时间控制,可以实现中断嵌套
对中断执行无法预测

HPRIO寄存器
写入HPRIO中的中断向量的后八位,可以改变该中断的优先级
同样,优先级的作用只有在多个中断源同时请求中断时在能体现

在中断服务程序中,首先对I为清零,即EnableInterrupts

选择优先级更高的中断源可以进入响应中断

设置优先等级
两级
一个中断源为低优先级,其他为高优先级
在低优先级中断服务程序中,对I位清零
在高优先级中断服务程序中,不清零
多级
利用局部的中断屏蔽位
比如Timer Channel0 的中断屏蔽位  TIE_C0I
例如:
中断向量地址 $FFF0 – FFF1 为低优先级
其他的中断为高优先级
在$FFF0 – FFF1 中断服务程序中,EnableInterrupts(I位清零)
其他的中断包括自己都可以在中断服务程序执行时,被响应
在其他的中断服务程序中,I位不清零(默认)
只有当前中断服务程序执行完后,才能响应其他的中断请求
返回列表