打印

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

[复制链接]
1634|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位即可。

使用特权

评论回复
5
jinpaidianzi| | 2013-9-21 18:18 | 只看该作者
这不是中断标志位么?写1清空。

使用特权

评论回复
6
teabottle| | 2013-9-21 20:23 | 只看该作者
求解释。。。

使用特权

评论回复
7
wangjinlili| | 2013-9-21 21:39 | 只看该作者
帮楼主顶一下

使用特权

评论回复
8
小营七郎| | 2013-9-21 21:42 | 只看该作者
28027不是C2000吗?

使用特权

评论回复
9
meishizhaoshi| | 2013-9-21 21:46 | 只看该作者
是的啊

使用特权

评论回复
10
houjiakai| | 2013-9-21 23:45 | 只看该作者
软件清零试试看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

168

主题

1522

帖子

3

粉丝