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);                        
  }      

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。