高级会员

- 积分
- 893
- 金钱
- 893
- 注册时间
- 2014-11-13
- 在线时间
- 53 小时
|
5金钱
请问无论如何我是用ETR还是TI来定时器外部计数都会有个误差,那怎么解决呢?误差为百分之0.5左右。就是50khz一般是49731这样。
////// 定时器3中断服务程序 //////
void TIM3_IRQHandler(void) //TIM3中断
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志
TIM_Cmd(TIM2,DISABLE);
printf("%d\n",TIM2->CNT);
TIM2->CNT = 0;
TIM_Cmd(TIM2,ENABLE);
}
}
|
最佳答案
查看完整内容[请看2#楼]
回复【6楼】正点原子:
---------------------------------
问题解决了,但是最大只能20mhz,再大不知道是不是因为整数类型已经最大的关系,我用的是unsigned long int。误差率是五万分之一。
|