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

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

多谢版主支持,我已经将DP256的project打包发送了!

也谢谢8808beter,我按照你的方法试了,中断向量FFDE指向了,TM中断!


[此贴子已经被作者于2005-10-6 13:57:27编辑过]

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

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

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

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

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

设置优先等级
两级
一个中断源为低优先级,其他为高优先级
在低优先级中断服务程序中,对I位清零
在高优先级中断服务程序中,不清零
多级
利用局部的中断屏蔽位
比如Timer Channel0 的中断屏蔽位  TIE_C0I
例如:
中断向量地址 $FFF0 – FFF1 为低优先级
其他的中断为高优先级
在$FFF0 – FFF1 中断服务程序中,EnableInterrupts(I位清零)
其他的中断包括自己都可以在中断服务程序执行时,被响应
在其他的中断服务程序中,I位不清零(默认)
只有当前中断服务程序执行完后,才能响应其他的中断请求
谢谢支持,能不能把TIM的自由计数器的溢出中断,就是TSCR2_TOI=1;TCNT溢出中断再说的细一点,具体怎么用!
  我试着把HPRIO=DE,就是把TCNT溢出中断设为最高优先级,但是还是没有进入中断!
我的Email:mwm008@eyou.com
    QQ:   415058239    急.....
正在使用MC9S12DP256和MC9S12C32,学习MC9S12UF32......
 下一步MC9S12NE64...
不用着急。我看到你的project,已经找到问题了。

在你的init()函数中,有这些语句:

...
TSCR2_TOI=1; //TCNT溢出中断允许
TSCR1_TFFCA=0; //快速清除中断标志允许
TSCR2=0x07; //11.0592MHz的晶振,大约1.5S可以
...

先执行TSCR2_TOI=1;
再执行TSCR2=0x07;

结果会是怎样???
海纳百川  有容乃大
TSCR1_TFFCA=1;才是快速清除中断标志允许,可能是我给你发的之前改了,没改了没改回来。

版主能不能把你改好的程序,发到我的信箱里,我看一下,我还是没搞会!
正在使用MC9S12DP256和MC9S12C32,学习MC9S12UF32......
 下一步MC9S12NE64...
TOI才是中断允许位!!

我没改什么,只是把TSCR2_TOI=1移到TSCR2=0x07后面去就行了。
海纳百川  有容乃大
谢谢版主,我终于把这个中断搞好了!
正在使用MC9S12DP256和MC9S12C32,学习MC9S12UF32......
 下一步MC9S12NE64...
原来是我犯的低级错误,谢谢长时间的支持,以后我要多加小心
正在使用MC9S12DP256和MC9S12C32,学习MC9S12UF32......
 下一步MC9S12NE64...
返回列表