定时器1和定时器4都没问题,但TIM2就有时不准,搞不明白.比如定时60ms和250us,TIM2就没问题,但当想定时1ms时,差得太远了,为16ms(本应该是1ms),请高手分析一下
/*******************************************
* 名称: TIM2_Init
* 功能: TIM2初始化
* 入口参数: 无
* 出口参数: 无
* 说明: 定时时间是1ms
系统时钟是16MHZ,16分频,故计数器
频率是1MH,即计数器周期为1uS
********************************************/
void TIM2_Init()
{
TIM2_IER = 0x00; //禁止中断
TIM2_EGR = 0x01; //允许产生更新事件
TIM2_PSCR=0X04; //分频系数是16
TIM2_ARRH=0X3E;
TIM2_ARRL=0x8;
TIM2_CNTRH=0X3E;
TIM2_CNTRL=0X8;
TIM2_IER=0X01; //开定时器中断
} |