专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

ARM 定时器计算公式

作者:星星and宇   来源:不详   点击数:  更新时间:2014年08月03日   【字体:

 static void TIM4_Init(void)//定时0.001s钟中断一次

{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 
  /* TIM5 clock enable */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);
  
  /* ---------------------------------------------------------------
    TIM4 Configuration: Output Compare Timing Mode:
    TIM2CLK = 36 MHz, Prescaler = 7200, TIM2 counter clock = 7.2 MHz
  --------------------------------------------------------------- */
 
  /* Time base configuration */
  //这个就是自动装载的计数值,由于计数是从0开始的,计数10000次后为9999
  TIM_TimeBaseStructure.TIM_Period = (2000 - 1);
  // 这个就是预分频系数,当由于为0时表示不分频所以要减1
  TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1);
  // 高级应用本次不涉及。定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)
  // 使用的采样频率之间的分频比例
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  //向上计数
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  //初始化定时器5
  TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
 
  /* Clear TIM5 update pending flag[清除TIM5溢出中断标志] */
  TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
 
  /* TIM IT enable */ //打开溢出中断
  TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
 
  /* TIM5 enable counter */
  TIM_Cmd(TIM4, ENABLE);  //计数器使能,开始工作
}
计算时间的公式公式
((1+TIM_Prescaler)/72M)*(1+TIM_Period)=T; 
关闭窗口

相关文章