用定时器0时,无论是外部是12M还是倍频后的时钟HCLK,定时很精确
但是用定时器1,2,3时会出现定时不准确的现象,(注意 本人把库函数倍频参数计算部分做了修改改为16M的,原来库函数是8M的)
在外部16MHZ下,取外部晶振时钟
time0 500ms
time1 700ms
time2 700ms
time3 700ms
在外部16MHZ下,倍频后48MHz HCLK下,选48MHz 的HCLK
time0 500ms
time1 246ms
time2 246ms
time3 246ms
不知道原因出在哪里,求教各路高手,不胜感激
void TIMER_Configuration()
{
DrvTIMER_Init();
DrvSYS_SelectIPClockSource(E_SYS_TMR3_CLKSRC,2);
DrvTIMER_Open(E_TMR3,1000,E_PERIODIC_MODE);
DrvTIMER_SetTimerEvent(E_TMR3,1,(TIMER_CALLBACK) Timer3_Callback,0);
DrvTIMER_EnableInt(E_TMR3);
DrvTIMER_Start(E_TMR3);
}
测试时,只把本段代码中的3换成0,1,2,示波器看到的结果如上所示
|