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...