定時(shí)器控制pwm(定時(shí)器控制pwm原理)
溫馨提示:這篇文章已超過(guò)732天沒(méi)有更新,請(qǐng)注意相關(guān)的內(nèi)容是否還可用!
PWM定時(shí)器控制pwm的意思是“脈沖寬度調(diào)制”P(pán)WM有兩個(gè)最基本的參數(shù)定時(shí)器控制pwm:頻率、占空比。頻率就是每秒鐘電平高低變化的次數(shù)定時(shí)器控制pwm,占空比是指高電平保持時(shí)間和整個(gè)脈沖周期中的比例關(guān)系。對(duì)于用定時(shí)器來(lái)模擬定時(shí)器控制pwm,最基本的方法就是使用一個(gè)IO口循環(huán)設(shè)置其輸出值為高電平和低電平??梢杂脙蓚€(gè)定時(shí)器,一個(gè)定時(shí)器1定時(shí)10ms,定時(shí)時(shí)間到輸出高電平,并啟動(dòng)另一個(gè)定時(shí)器2,定時(shí)器定時(shí)時(shí)間小于定時(shí)1,并且可調(diào),定時(shí)器2時(shí)間到輸出低電平即可,并且關(guān)閉自己。
本文目錄一覽:
- 1、如何用一個(gè)定時(shí)器生成PWM波形
- 2、通用定時(shí)器產(chǎn)生PWM信號(hào)時(shí),輸入輸出信號(hào)如何配置?
- 3、STM32通用定時(shí)器PWM輸出
- 4、單片機(jī)如何通過(guò)定時(shí)器來(lái)實(shí)現(xiàn)pwm調(diào)光技術(shù)
如何用一個(gè)定時(shí)器生成PWM波形
PWM定時(shí)器控制pwm的意思是“脈沖寬度調(diào)制”P(pán)WM有兩個(gè)最基本的參數(shù)定時(shí)器控制pwm:頻率、占空比。頻率就是每秒鐘電平高低變化的次數(shù)定時(shí)器控制pwm,占空比是指高電平保持時(shí)間和整個(gè)脈沖周期中的比例關(guān)系。對(duì)于用定時(shí)器來(lái)模擬定時(shí)器控制pwm,最基本的方法就是使用一個(gè)IO口循環(huán)設(shè)置其輸出值為高電平和低電平。那么定時(shí)器在這里起計(jì)時(shí)作用,而且需要兩個(gè)時(shí)間:高電平持續(xù)時(shí)間、低電平持續(xù)時(shí)間。只要做到這兩個(gè)時(shí)間的計(jì)時(shí),那么就可以實(shí)現(xiàn)基本的PWM了。而要做到兩個(gè)時(shí)間的計(jì)時(shí),有兩種方案:1.單計(jì)時(shí)器方案pre t="code" l="cpp"int i;//計(jì)時(shí)變量
timer1(){//計(jì)時(shí)器1中斷函數(shù)
//此處示例每隔100個(gè)最小計(jì)時(shí)周期電平變化一次,即200個(gè)最小計(jì)時(shí)周期閃爍一次
i++;
if (i==200){
i=0;//變量復(fù)位,完成一個(gè)周期,準(zhǔn)備下一個(gè)周期
}
else if (i==100){
LED_OFF;//關(guān)燈
}
else if (i==0){
LED_ON;//開(kāi)燈
}
}2.雙計(jì)時(shí)器方案
pre t="code" l="cpp"http://只需要設(shè)計(jì)好兩個(gè)計(jì)時(shí)器的初值和周期,即可完成交替亮滅
timer1(){//計(jì)時(shí)器1中斷函數(shù)
//此處示例每隔100個(gè)最小計(jì)時(shí)周期電平變化一次,即200個(gè)最小計(jì)時(shí)周期閃爍一次
LED_ON;//開(kāi)燈
}
timer2(){
LED_OFF;//關(guān)燈
}
通用定時(shí)器產(chǎn)生PWM信號(hào)時(shí),輸入輸出信號(hào)如何配置?
如果想兩路pwm完全一樣是可以的,可以?xún)蓚€(gè)定時(shí)器同步觸發(fā)就行了,各用不同的通道,定時(shí)超過(guò)周期時(shí)要有個(gè)計(jì)數(shù),stm32通用定時(shí)器產(chǎn)生pwm時(shí),模式1和模式2的區(qū)別在于邏輯不同,模式1比較低輸出。
STM32定時(shí)器是個(gè)強(qiáng)大的模塊,使用的頻率也是很高的,可以定時(shí)器可以做一些基本的定時(shí),做PWM輸出或者輸入捕獲功能,從系統(tǒng)框架,名為T(mén)IMx的有八個(gè),其中TIM1和TIM8掛在APB2總線(xiàn)上,而TIM2-TIM7則掛在APB1總線(xiàn)上。
用來(lái)輸出給分別的兩個(gè)燈嘛,看它們的亮暗程度 上次做了一個(gè)方波控制器,有個(gè)鍵可以用來(lái)調(diào)換極性,就是通過(guò)PWM1和PWM2來(lái)調(diào)換極性的。
擴(kuò)展資料:
如今幾乎所有市售的單片機(jī)都有PWM模塊功能,若沒(méi)有(如早期的8051),也可以利用定時(shí)器及GPIO口來(lái)實(shí)現(xiàn)。
更為一般的PWM模塊控制流程為(筆者使用過(guò)TI的2000系列,AVR的Mega系列,TI的LM系列):使能相關(guān)的模塊(PWM模塊以及對(duì)應(yīng)管腳的GPIO模塊)。
配置PWM模塊的功能,具體有:設(shè)置PWM定時(shí)器周期,該參數(shù)決定PWM波形的頻率。
設(shè)置PWM定時(shí)器比較值,該參數(shù)決定PWM波形的占空比。
設(shè)置死區(qū)(deadband),為避免橋臂的直通需要設(shè)置死區(qū),一般較高檔的單片機(jī)都有該功能。
設(shè)置故障處理情況,一般為故障是封鎖輸出,防止過(guò)流損壞功率管,故障一般有比較器或ADC或GPIO檢測(cè)。
設(shè)定同步功能,該功能在多橋臂,即多PWM模塊協(xié)調(diào)工作時(shí)尤為重要。
設(shè)置相應(yīng)的中斷,編寫(xiě)ISR,一般用于電壓電流采樣,計(jì)算下一個(gè)周期的占空比,更改占空比,這部分也會(huì)有PI控制的功能。
使能PWM波形發(fā)生。
參考資料:百度百科-PWM
STM32通用定時(shí)器PWM輸出
脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫(xiě),簡(jiǎn)稱(chēng)脈寬調(diào)制,是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。簡(jiǎn)單一點(diǎn),就是對(duì)脈沖寬度的控制。
STM32 的定時(shí)器除了 TIM6 和 7。其他的定時(shí)器都可以用來(lái)產(chǎn)生 PWM 輸出。其中高級(jí)定時(shí)器 TIM1 和 TIM8 可以同時(shí)產(chǎn)生多達(dá) 7 路的 PWM 輸出。而通用定時(shí)器也能同時(shí)產(chǎn)生多達(dá) 4路的 PWM 輸出,這樣,STM32 最多可以同時(shí)產(chǎn)生 30 路 PWM 輸出!這里我們僅利用 TIM3的 CH2 產(chǎn)生一路 PWM 輸出。
PWM 相關(guān)的函數(shù)設(shè)置在庫(kù)函數(shù)文件 stm32f10x_tim.h 和 stm32f10x_tim.c文件中。
TIM3_CH2 默認(rèn)是接在 PA7上面的,而我們的 LED0 接在 PB5 上面,如果普通 MCU,可能就只能用飛線(xiàn)把 PA7 飛到 PB5上來(lái)實(shí)現(xiàn)了,不過(guò),我們用的是 STM32,它比較高級(jí),可以通過(guò)重映射功能,把 TIM3_CH2映射到 PB5 上。
STM32函數(shù)庫(kù)對(duì)TIM3重映射有兩種方法,一種是完全重映射GPIO_FullRemap_TIM3,這個(gè)比較好理解就是把TIM3的所有通道端口映射到Remap指定的端口上;還有一種是部分映射GPIO_PartialRemap_TIM3。
在庫(kù)函數(shù)中,PWM 通道設(shè)置是通過(guò)函數(shù) TIM_OC1Init()~TIM_OC4Init()來(lái)設(shè)置的,不同的通道的設(shè)置函數(shù)不一樣,這里我們使用的是通道 2,所以使用的函數(shù)是 TIM_OC2Init()。
總結(jié):PWM模式1下,TIMx_CCR1大時(shí)有效;PWM模式2下,TIMx_CCR1小有效。
有效電平的高低取決于TIM_OCPolarity的定義。本例子情況如下圖:
至此,PWM初始化結(jié)束。
單片機(jī)如何通過(guò)定時(shí)器來(lái)實(shí)現(xiàn)pwm調(diào)光技術(shù)
可以用兩個(gè)定時(shí)器,一個(gè)定時(shí)器1定時(shí)10ms,定時(shí)時(shí)間到輸出高電平,并啟動(dòng)另一個(gè)定時(shí)器2,定時(shí)器定時(shí)時(shí)間小于定時(shí)1,并且可調(diào),定時(shí)器2時(shí)間到輸出低電平即可,并且關(guān)閉自己。
發(fā)表評(píng)論
還沒(méi)有評(píng)論,來(lái)說(shuō)兩句吧...