28027 中timer中断为什么没有将中断标志为清0?

[复制链接]
1997|9
 楼主| yangguangaisha 发表于 2013-9-21 16:37 | 显示全部楼层 |阅读模式
读实例程序如下:
interrupt void cpu_timer0_isr(void)
{
CpuTimer0.InterruptCount++;
// Acknowledge this interrupt to receive more interrupts from group 1
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
 楼主| yangguangaisha 发表于 2013-9-21 16:37 | 显示全部楼层
请问中断标志位TIF为什么没有清空呢?这样不应该是一直进入中断吗?为什么实际情况下会正常运行?
gexingyouxian 发表于 2013-9-21 17:12 | 显示全部楼层
源码的中断服务程序中没有将中断标志位清0 的指令。当程序开始运行并执行到指令“CpuTimer0Regs.TCR.bit.TSS = 0;”时,定时器中断标志位TIF(TCR[15])即从0 变成1。这意味着一旦启动定时器即触发定时器中断之后,即使通过软件将该位置1,也不能将其清0。
acer4736 发表于 2013-9-21 17:29 | 显示全部楼层
timer的寄存器中没有bit是用来清楚中断标志位的。其通过TSS位来启动或停止timer。
timer的中断只需要配置TSS与TIE位即可。
jinpaidianzi 发表于 2013-9-21 18:18 | 显示全部楼层
这不是中断标志位么?写1清空。
teabottle 发表于 2013-9-21 20:23 | 显示全部楼层
求解释。。。
wangjinlili 发表于 2013-9-21 21:39 | 显示全部楼层
帮楼主顶一下
小营七郎 发表于 2013-9-21 21:42 | 显示全部楼层
28027不是C2000吗?
meishizhaoshi 发表于 2013-9-21 21:46 | 显示全部楼层
是的啊
houjiakai 发表于 2013-9-21 23:45 | 显示全部楼层
软件清零试试看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

168

主题

1522

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部