|
關于stm32定時器定時計算問題
下面是配置:
TIM_TimeBaseInitStruct.TIM_Period =1000;
TIM_TimeBaseInitStruct.TIM_Prescaler = 35999;
TIM_TimeBaseInitStruct.TIM_ClockDivision = 0;
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);
TIM_CleaRFlag(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);
我想知道這里的定時時間是多少?
計算方法是什么?
答:
預分頻系數為36000 —— TIM_Prescaler = 35999
計數周期為1000 —— TIM_Period =1000
向上計數方式 —— TIM_CounterMode = TIM_CounterMode_Up
從0計數到1000則產生中斷 —— TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE)
如果你測得0.5s進一次中斷,則定時器的輸入時鐘應該為72MHz:
72MHz / 36000(預分頻) / 1000 = 2Hz
|
|