我用timer0做延时用,发现程序偶尔会死在延时函数里,debug发现都死在TimerValueGet();系统时钟为6M,timer0的配置和延时函数如下,望大神指点,谢谢
void Timer0_Configuration(void)
{
TimerDisable(TIMER0_BASE, TIMER_A);
TimerPrescaleSet(TIMER0_BASE, TIMER_A, 6) ; // 计数器频率 sysclk / 6 = 1M
TimerConfigure(TIMER0_BASE, TIMER_CFG_16_BIT_PAIR | TIMER_CFG_A_ONE_SHOT);
TimerLoadSet(TIMER0_BASE, TIMER_A, 1010); //根据不同的系统时钟设定value
TimerEnable(TIMER0_BASE, TIMER_A);
}
void Delay_1ms(void)
{
Timer0_Configuration();
TimerEnable(TIMER0_BASE, TIMER_A);
while(1)
{
if(TimerValueGet(TIMER0_BASE, TIMER_A) < 10) //待定1ms跳出
break;
}
TimerDisable(TIMER0_BASE, TIMER_A);
}