stm8定时器不准确的问题

2019-07-19 21:34发布

void TIM2_Config(void)
{
  TIM2_DeInit();
  TIM2_TimeBaseInit(TIM2_PRESCALER_2,50);//定时器设置1M的计数频率,1US的分辨率 ,计时50us
  TIM2_ClearFlag(TIM2_FLAG_UPDATE);
  TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
  TIM2_Cmd(ENABLE);
}

大家看看这个程序,没有啥问题啊?为什么会不准确

为了测试一下,我在中断函数里做了一下测试:500ms闪烁,但是结果要差不多1S了???
u16 t,k;;
void Time2InitFun(void)
{
  if(TIM2_GetITStatus(TIM2_IT_UPDATE)==SET)
  {                            
            t++;
           if(t==100)
          {
                  t=0;
                   k++;
                  if(k=100)
                   {
                        k=0;
                        GPIO_WriteReverse(LED_GPIO_PORT,LED_GPIO_PINS1);
                  }
                }
            TIM2_ClearITPendingBit(TIM2_IT_UPDATE);                        
  }      

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
揭阳老咸菜
1楼-- · 2019-07-19 22:34
if(k=100)
弹痕
2楼-- · 2019-07-20 03:21
 精彩回答 2  元偷偷看……
BMN李
3楼-- · 2019-07-20 08:06
 精彩回答 2  元偷偷看……
弹痕
4楼-- · 2019-07-20 12:24
回复【3楼】BMN李:
---------------------------------
回复【3楼】BMN李:
-----------------------------默认 8分频 也就是2M
弹痕
5楼-- · 2019-07-20 13:38
 精彩回答 2  元偷偷看……
八度空间
6楼-- · 2019-07-20 13:49
建议看看时钟树

一周热门 更多>