PWM使用暫存器設定

2021-08-19 17:46:17 字數 1653 閱讀 7066



pwm   原理分析

1,rcc->apb1enr |= 0x00000002;//使能tim3 時鐘

rcc->apb2enr |= 0x00000011;//使能管腳c

2、使能c埠:使用pin7,輸出模式:復用推挽輸出

頻率:50mhz。

10:復用功能推挽輸出模式

11:輸出模式,最大速度50mhz

gpioc->crl |= 0xb0000000;

3、配置時鐘tim3,

必須設定的便量

頻率=72000/900=8khz

設定用來作為timx時鐘頻率預分頻值,100khz計數頻率

設定時鐘分割:tdts = tck_tim

tim向上計數模式

對應暫存器操作:

tim3->cr1

控制暫存器操作,

位0 cen:使能計數器 (counter enable) 

位4 dir:方向 (direction)

位9:8 ckd[1:0]: 時鐘分頻因子 (clock division)

tim3->cr1 = 0x00000000  //暫時未安排使能

tim3->arr

自動重裝載暫存器(timx_arr)

tim3->arr = 0x00000385

timx->psc

預分頻器(timx_psc)

psc[15:0]:預分頻器的值 (prescaler value)

tim3->psc = 0x00000000;

timx->egr

事件產生暫存器(timx_egr)

ug: 產生更新事件 (update generation)

0:無動作;

1:重新初始化計數器,並產生乙個更新事件。注意預分頻器的計數器也被清』0』(但是預分頻係數不變)。若在中心對稱模式下或dir=0(向上計數)則計數器被清』0』;若dir=1(向下計數)則計數器取timx_arr的值。

timx->egr = 0x0001

5、pwm初始化

tim3->ccer

捕獲/比較使能暫存器(timx_ccer)

位5 cc2p:輸入/捕獲2輸出極性 (capture/compare 2 output polarity)

位4 cc2e:輸入/捕獲2輸出使能 (capture/compare 2 output enable)

tim3->ccer = 0x0030

tim3->cr2

控制暫存器2

tim3->cr2 = 0x0000;

tim3->ccmr1

捕獲/比較模式暫存器1

位14:12 oc2m[2:0]:輸出比較2模式 (output compare 2 mode  110

位11 oc2pe:輸出比較2預裝載使能 (output compare 2 preload enable)

tim3->ccmr1 = 0x6800; 

tim3->ccr2

捕獲/比較暫存器2

tim3->ccr2 = 0x0000;

tim3->cr1

控制暫存器操作,

位0 cen:計數器使能 (counter enable)

1:使能計數器

tim3->cr1 |= 0x0001 

DM8168 PWM驅動(暫存器設定)

dm8168的pwm是通過timx out引腳輸出的,需要對timer進行配置才能有波形輸出。對timer的時鐘進行配置,確保timer能正常工作。設定暫存器之前關閉timer。設定定時溢位後的裝載值。設定比較值,該值決定pwm占空比。設定internal counter值。啟動timer。啟動dm...

暫存器(通用暫存器)

因為學習使用的是王爽的 組合語言 第3版 因此也只能提到8086cpo的暫存器。對於其他而言,原理都是相通的。對於8086暫存器,有14個暫存器,主要是 ax bx cx dx si di sp bp ip cs ss ds es psw。一 通用暫存器 8086的通用暫存器有ax bx cx dx...

暫存器,標誌暫存器

涉及硬體傳輸資料的,往往包含以下內容 1.資料傳輸引腳 資料放 2.控制引腳 怎麼控制 3.狀態引腳 結果如何 暫存器相當於cpu內部的儲存單元,可能是連續排列,相當於 c語言中的陣列。一 8個通用暫存器 16 bit accumulate axah alr0 count cxch clr1 dat...