{
count=x;
CpuTimer0Regs.TCR.bit.TSS=0; 这是延时程序,用定时器中断做延时,调用delay的时候打开timer0,然后while一直在判断count是否为0,为0的时候说
while(count); 明定时时间到了,关闭定时器
CpuTimer0Regs.TCR.bit.TSS=1;
}
{
times++;
count–;
CpuTimer1Regs.TCR.bit.TIF = 1; 这是中断程序,count–,其中times是我用来统计进入中断次数用的
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; 本例中count=100,count减到0的时候定时器并没有停止,times的值也一直再加,已经
EINT; 超过100了。我这样想个应该没问题吧,请问定时器关不上的原因是什么呢?
}
jamin:
中断中的count应该这样写
if(count > 0)
{
count–;
}
{
count=x;
CpuTimer0Regs.TCR.bit.TSS=0; 这是延时程序,用定时器中断做延时,调用delay的时候打开timer0,然后while一直在判断count是否为0,为0的时候说
while(count); 明定时时间到了,关闭定时器
CpuTimer0Regs.TCR.bit.TSS=1;
}
{
times++;
count–;
CpuTimer1Regs.TCR.bit.TIF = 1; 这是中断程序,count–,其中times是我用来统计进入中断次数用的
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; 本例中count=100,count减到0的时候定时器并没有停止,times的值也一直再加,已经
EINT; 超过100了。我这样想个应该没问题吧,请问定时器关不上的原因是什么呢?
}
Eric Ma:
你设个断点在CpuTimer0Regs.TCR.bit.TSS=1处,看是否能跳到这里执行。
如果不可以,看count的值变成什么,再分析一下。
Eric
TI中文支持网

