[STM32F1]

定时器跑一阵后 就偏差了

[复制链接]
604|12
手机看帖
扫描二维码
随时随地手机跟帖
pengf|  楼主 | 2019-4-20 14:58 | 显示全部楼层 |阅读模式
跑了十几分钟后就不准了

使用特权

评论回复
chuxh| | 2019-4-20 15:03 | 显示全部楼层

楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
pengf|  楼主 | 2019-4-20 15:06 | 显示全部楼层
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
   
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

                TIM_TimeBaseStructure.TIM_Period = 10000;                                
                TIM_TimeBaseStructure.TIM_Prescaler = 71;                                         
                TIM_TimeBaseStructure.TIM_ClockDivision = 0;                                
                TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;        
                TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;                        
               
                TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);                                
               
                TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);                                                
                TIM_Cmd(TIM2, ENABLE);        

使用特权

评论回复
pengf|  楼主 | 2019-4-20 15:09 | 显示全部楼层
计时每隔1ms进入一次中断  ,累计至50S,120S,200S,260S,分别处理四次事件,然后到300S,计数值清零,从0开始计时。

使用特权

评论回复
juventus9554| | 2019-4-20 15:12 | 显示全部楼层
应该是定时时间短的时候误差小;
时间长误差大吧?

使用特权

评论回复
llljh| | 2019-4-20 15:15 | 显示全部楼层
你可以把每段时间的误差,列个表格,查下原因看看;

使用特权

评论回复
pengf|  楼主 | 2019-4-20 15:19 | 显示全部楼层
我觉得也是这样  之前用的定时器都是在几秒就清零了

这次时间长好多 都300S了  

使用特权

评论回复
dingy| | 2019-4-20 15:23 | 显示全部楼层

那就想办法补偿;
改大定时器的时钟源分频,1MS中断1次太快了;

使用特权

评论回复
pengf|  楼主 | 2019-4-20 15:27 | 显示全部楼层
原因找到了,在else if {Count = 0;} 这里面我只对Count清零了,但是对事件接下来的操作没做处理,加了第一个事件的处理语句就OK了。

使用特权

评论回复
keaibukelian| | 2019-5-10 10:10 | 显示全部楼层
是内部时钟吗

使用特权

评论回复
labasi| | 2019-5-10 10:14 | 显示全部楼层
大概差多少呀

使用特权

评论回复
paotangsan| | 2019-5-10 10:22 | 显示全部楼层
如果是内部晶振就比较正常

使用特权

评论回复
renzheshengui| | 2019-5-10 10:25 | 显示全部楼层
大概差了多少呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝