打印
[STM8]

定时器

[复制链接]
745|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
弹痕CJP|  楼主 | 2015-11-2 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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);                       
  }      

}
沙发
amanda_s| | 2015-11-2 13:21 | 只看该作者
建议楼主对照官方的例程,仔细检查一下系统时钟配置和TIM2的初始化。
确认time base是不是50us.

使用特权

评论回复
板凳
wuxin999| | 2015-11-11 17:24 | 只看该作者
内部晶振可能有点不准吧

使用特权

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

本版积分规则

2

主题

7

帖子

0

粉丝