在线时间0 小时
UID325466
ST金币0
蝴蝶豆0
注册时间2011-10-30
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
TIM_TimeBaseStructure.TIM_Period =8000;//// 6735;//6799;
TIM_TimeBaseStructure.TIM_Prescaler = 8;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; //设置了时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_Cmd(TIM3, ENABLE);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
void TIM3_IRQHandler(void)
{ u16 comparetime;
u8 nn;
if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
// TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
TIM_ClearITPendingBit(TIM3, 0xffff);
ms++;
}
}
本来想ms是1ms加1,加到1000就是1s,但是实际上慢了。把TIM_Period减小到6735,才差不多是1ms。
按理说tim3,系统是72mhz,9分频得到8Mhz,加到8000为1ms。
请问为什么会慢?要精确定时1ms该怎么办?
|
|
|