|
我在程序中使用定时器5进行定时调用AD采样函数,可是定时器一直无法启动,程序如下,还请高手们指出错误之处
void Time5IntTest(void)
{
rTCON = 0xffffff; // 000 不自动重载(反转模式)|不更新TCNTB5|停止定时器5
rTCFG0 = (rTCFG0 & 0xff00ffff)|(0x80<<16); //预分频值128
rTCFG1 = (rTCFG1 & 0xfffff)|(0x3<<20); //分割值1/16
rTCNTB5=65536; //设置定时器的初始值
rTCON = 0x2ffffff; //010 更新TCNTB5
rTCON = 0x5ffffff; //101 自动重载|停止更新TCNTB5|开启定时器5
}
void __irq AD_start(void)
{
rI_ISPC=BIT_TIMER5; //清除TIMER5中断请求服务位
...
}
main()
{
rINTCON = 0x5;
rINTMOD = 0x0; //ALL IRQ MODE
rINTMSK = ~(BIT_TIMER5|BIT_GLOBAL);
pISR_TIMER5=(unsigned)AD_start;
Time5IntTest();
while(1);
}
|
|