您的位置 首页 分销

飞思卡尔HCS12中止

默认状态:在进入中断服务程序时,I位自动置1,禁止其他可屏蔽中断即使有优先级更高的中断请求,也必须等当前中断服务程序执行完以后才能响

默许状况:
在进入中止服务程序时,I位主动置1,制止其他可屏蔽中止
即便有优先级更高的中止恳求,也有必要等当时中止服务程序履行完今后才干呼应
优先级的效果只要在多个中止源一起恳求中止时在能表现
无法完成中止嵌套
如果在进入中止服务程序时,手动对I位清零:
任何其他可屏蔽中止都能够被呼应,不管其优先级有多高
中止呼应由时刻操控,能够完成中止嵌套
对中止履行无法猜测
HPRIO寄存器
写入HPRIO中的中止向量的后八位,能够改动该中止的优先级
相同,优先级的效果只要在多个中止源一起恳求中止时在能表现





中止优先处理机制:

1:在中止服务程序中,首要对I为清零,即EnableInterrupts
2:挑选优先级更高的中止源能够进入呼应中止
3:设置优先等级
(一)两级
一个中止源为低优先级,其他为高优先级
在低优先级中止服务程序中,对I位清零
在高优先级中止服务程序中,不清零
(二)多级
使用部分的中止屏蔽位
比方Timer Channel0 的中止屏蔽位 TIE_C0I
优先机制 – 两级
例如:
–中止向量地址 $FFF0 – FFF1 为低优先级
–其他的中止为高优先级
–在$FFF0 – FFF1 中止服务程序中,EnableInterrupts(I位清零)
–其他的中止包含自己都能够在中止服务程序履行时,被呼应
–在其他的中止服务程序中,I位不清零(默许)
–只要当时中止服务程序履行完后,才干呼应其他的中止恳求
当一起有多个中止源恳求中止时,中止向量地址最靠近$FFFF的,将会首要被呼应。

自定义优先级
中止向量地址
中止源
CCR屏蔽位
部分屏蔽位
HPRIO
1
$FFEE,$FFEF
ECT通道0
I
TIE_C0I
$EE
0
$FFEC,$FFED
ECT通道1
I
TIE_C1I
$EC
2
$FFEA,$FFEB
ECT通道2
I
TIE_C2I
$EA


要求:在低优先级的中止服务程序中,高优先级的中止恳求能够被呼应

HPRIO = 0xEA:ECT0,1,2一起恳求中止时,CPU将会首要呼应通道2
默许时,CPU将会首要呼应通道0

优先机制-多级

状况 1:
每个中止都独自产生,在一个中止程序履行时,没有其他中止
状况 2:
在履行ECT1的中止服务程序时,ECT0恳求中止
ECT0中止服务程序将被履行
状况 3:
在履行ECT2的中止服务程序时,ECT0恳求中止
ECT2的中止服务程序履行完毕后,履行ECT0的中止服务程序
状况 4:
ECT1,ECT2一起恳求中止

ECT1的中止服务程序先履行,当EnableInterrupts后
履行ECT2的中止服务程序
ECT2的中止服务程序履行完毕后,回来履行ECT1的中止服务程序

在ECT0中止服务程序中:
TIE_C1I = 0; //封闭ECT1部分中止
TIE_C2I = 1; //敞开ECT2部分中止
EnableInterrupts; //敞开大局中止

TIE_C1I = 1; //敞开ECT1部分中止
TIE_C2I = 1; //敞开ECT2部分中止
在ECT1中止服务程序中(自定义优先级最低):

TIE_C0I = 1; //敞开ECT0部分中止
TIE_C2I = 1; //敞开ECT2部分中止
EnableInterrupts; //敞开大局中止

TIE_C0I = 1; //敞开ECT0部分中止
TIE_C2I = 1; //敞开ECT2部分中止
在ECT2中止服务程序中(自定义优先级最高):
用户程序

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/258796.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部