談論主從,可知至少有兩個以上的觸發或者驅動信号,stm32内部有多個定時器,可以互相之間驅動或者控制。
Stm32進階定時器(二)
1 主從模式:主?從?
- 主模式:定時器使能隻受驅動時鐘控制或者輸出控制信号(TRGO)。
- 從模式:複位模式, 在發生一個觸發輸入事件時,計數器和它的預分頻器能夠重新被初始化;同時,如果IMx_CR1寄存器的URS 位為低,還産生一個更新事件UEV ;然後所有的預裝載寄存器(TIMx_ARR ,TIMx_CCRx)都被更新了。
- 從模式:門控模式, 計數器的使能依賴于選中的輸入端的電平。
- 從模式:觸發模式, 計數器的使能依賴于選中的輸入端上的事件。
- 從模式:外部時鐘模式+觸發模式, 外部時鐘模式2可以與另一種從模式(外部時鐘模式1和編碼器模式除外)一起使用。這時,ETR信号被用作外部時鐘的輸入,在複位模式、門控模式或觸發模式可以選擇另一個輸入作為觸發輸入。不建議使用TIMx_SMCR寄存器的TS位選擇ETR作為TRGI。
2 PWM輸入模式
該模式是輸入捕獲模式的一個特例,特點:
- 兩個ICx信号被映射至同一個TIx輸入。
- 這2個ICx信号為邊沿有效,但是極性相反。
- 其中一個TIxFP信号被作為觸發輸入信号,而從模式控制器被配置成複位模式。
2.1 PWM捕獲結果
TIMx通過過複位啟動,複位計數器,TIMx_CCR1捕獲TI1的上升沿得到此刻CNT中的值,TIMx_CCR2捕獲TI1的下降沿得到此刻CNT中的值,那麼有他們的關系就可以得到:
- TI1周期 = TIMx_CCR1 × CNT周期
- 占空比 = TIMx_CCR2/ TIMx_CCR1
2.2 配置執行個體
測量輸入到TI1上的PWM信号的長度(TIMx_CCR1寄存器)和占空比(TIMx_CCR2 寄存器),具體步驟如下(取決于CK_INT的頻率和預分頻器的值)
1. 選擇TIMx_CCR1的有效輸入:置TIMx_CCMR1寄存器的CC1S=01(選中TI1)。
2. 選擇TI1FP1的有效極性(用來捕獲資料到TIMx_CCR1中和清除計數器):置CC1P=0(上升沿有效)。
3. 選擇TIMx_CCR2的有效輸入:置TIMx_CCMR1寄存器的CC2S=10(選中TI1)。
4. 選擇TI1FP2的有效極性(捕獲資料到TIMx_CCR2):置CC2P=1(下降沿有效)。
5. 選擇有效的觸發輸入信号:置TIMx_SMCR寄存器中的TS=101(選擇TI1FP1)。
6. 配置從模式控制器為複位模式:置TIMx_SMCR中的SMS=100。
7. 使能捕獲:置TIMx_CCER寄存器中CC1E=1且CC2E=1。
3 PWM輸出模式
脈沖寬度調制模式可以産生一個由TIMx_ARR寄存器确定頻率、由TIMx_CCRx寄存器确定占空比的信号。
由下圖可知,TIMx_ARR=8(周期),TIMx_CCRx=4(占空比)
形而上者謂之道 形而下者謂之器。