1 前言??
上期我們介紹了CubeMX中的定時器中的基礎配置以及PWM模式的具體配置。
本期我們介紹剩下其他配置:輸入捕獲,輸出比較,強制輸出。
2 輸入捕獲???
Input Capture顧名思義是輸入捕獲,它的作用有點類似于外部中斷+定時器。其基本作用是捕獲外部信號或事件,并記錄下該事件發(fā)生時定時器的計數(shù)值。
利用這個功能我們就可以實現(xiàn)測脈寬(上升沿和下降沿之間的時間),周期,頻率等參數(shù)。
當我們配置一個通道為輸入捕獲時,會有四個設置,主要需要關(guān)心的是:Polarity Selection捕獲模式,Rising Edge即信號上升沿(0->1)觸發(fā)捕獲。
Falling Edge為下降沿觸發(fā)捕獲,BothEdges為雙向捕獲。
Input Filter為輸入濾波器,當我們的輸入信號有比較大的噪聲或者波動的時候,增加這個值,可以讓定時器在延時一段時鐘之后再觸發(fā)捕獲(按鍵消抖)。
4 強制輸出??
之前無論是PWM模式也好,輸入捕獲8模式也好,都需要依賴于定時器的計數(shù)值,而不能直接修改引腳的高低電平狀態(tài)。
而強制輸出模式可以強制控制定時器的輸出引腳的狀態(tài),而不依賴于定時器的正常計數(shù)或比較操作,允許你通過軟件直接控制定時器的輸出引腳,無論定時器的計數(shù)器狀態(tài)或比較寄存器如何。
這在需要強制輸出特定信號(如強制輸出高電平或低電平)的時候非常有用,特別是在某些控制系統(tǒng)中,要求在特定情況下強制設置輸出狀態(tài)以實現(xiàn)精確控制。
例如我們在點擊控制過程中,如果檢測到了電機出現(xiàn)故障,此時無論是停止定時器,還是停止PWM功能輸出,如果引腳此時處于高電平狀態(tài),那么我們是無法讓引腳置低的。必須等定時器計數(shù)到另一個狀態(tài)的時候才能讓引腳變低。
如果我們采用Force OutPut,就可以通過軟件使得手動拉低引腳,防止電機繼續(xù)工作在故障狀態(tài)。
并且模式選擇中有著強制拉高和強制拉低兩個功能,它的作用是當計數(shù)值(CNT)到達設定值時,強制拉高或拉低輸出引腳。
它的主要用途包括 緊急停止、同步控制、外部事件處理 等特殊場景,能夠提供直接、立即的信號輸出控制。
3 比較輸出??
比較輸出無論是輸出引腳配置還是參數(shù)配置都和PWM輸出都比較接近,這里我們著重介紹一下二者的區(qū)別。
PWM模式本身并不復雜,是利用CCR和計數(shù)值(CNT)的值來實現(xiàn)輸出高低電平。主要用于生成周期性信號,控制信號的占空比,通過調(diào)節(jié)占空比來控制輸出的功率或強度。
而輸出比較模式則不一樣。通道設置為輸出比較模式之后,定時器通過比較計數(shù)值與預設值,當兩者相等時觸發(fā)輸出信號的改變,定時器會觸發(fā)一個事件,這個事件后面會說。通常用在占空比比較固定,常用于生成定時脈沖或在特定時刻產(chǎn)生事件。
雖然二者在使用定時器的比較機制上有很多相似性,但它們的核心區(qū)別在于占空比控制和輸出信號的應用目標。
可以看到比較輸出的模式比較多,但是仔細分析其功能。他是一個功能非常強大功能。Frozen是凍結(jié)引腳輸出,引腳不輸出高低電平。但是當計數(shù)值到達比較值時會觸發(fā)比較輸出的中斷回調(diào)函數(shù)。
Active Level on match是到達比較值時將引腳設置為高電平(不會主動拉低)。Inactive 則是拉低。
Toggle on match 則是翻轉(zhuǎn)引腳電平,利用這個功能我們可以實現(xiàn)方波輸出,但是需要注意的是,每次到達比較值時實現(xiàn)電平翻轉(zhuǎn),因此方波的頻率是我們定時器頻率的一半,并且占空比沒有PWM那么容易控制。
Froced Active顧名思義就是強制高電平。
因此輸出比較更像是一個集大成者,既可以實現(xiàn)PWM模式的方波輸出,也可以實現(xiàn)強制輸出的強制功能。