輕松學ARM系列之玩轉蜂鳴器
時間:2018-08-16作者:華清遠見
作者:熊老師,華清遠見教育科技集團講師。 今天我們來學習輕松學arm系列之玩轉蜂鳴器,基于arm的cortex_a8內核的三星S5PV210開發平臺。 那么我們來看一下如何學習使用pwm控制蜂鳴器? 一、總體架構圖
![]()
搞定蜂鳴器之前需要我們對三星的GPIO簡介的相關章節有一定的了解,主要是timer 定時器。 二、玩轉定時器的幾個要領 2.1 查看開發板上蜂鳴器的連接的原理圖 蜂鳴器對應的原理圖
![]()
核心板的對應的原理圖
![]()
2.2 選中GPD0CON配置寄存器的xpwmTOUT1功能
![]()
GPD0.GPD0CON = ((~(0xf 0))& GPD0CON)| (0x2 << 4);選為pwm輸出功能 2.3 配置預分頻和分頻寄存器的配置
![]()
![]()
配置預分頻的值,TIMER.TCFG0 = (TIME.TCFG0 & (~0xff)) | 0xff ; 預分頻的值設置為255 + 1
![]()
配置分頻的值為16分頻: TIMR.TCFG1 = (TIME.TCFG1 & (~0xf0))| (0x4 << 4); 2.4 設置緩沖計數器的寄存器值和緩沖比較器的值 工作原理:計數器的值每隔一個時鐘周期,做減1操作,如果減到值與比較器的值相等那么進行高低電平的轉換,繼續遞減1,直到為0,那么翻轉,實現了一個完整的方波周期
![]()
![]()
設置計數緩沖區寄存器值 TIME.TCNTB1 = XXX; 設置總周期,一個pwm 設置比較緩沖區寄存器值 TIME.TCMPB1 = XXX/2; 設置是占空比 2.5 手動更新緩沖寄存器中的值到計數器中 設置pwm的步驟:
![]()
![]()
![]()
![]()
根據是1.3.15的第二步,先設置手動更新,在清除手動更新,啟動定時器 手動更新,使緩沖器中的值更新到計數器中,雙緩沖機制 TIME.TCON = TIME.TCON & (0x0e << 8) ; 0000 1110 清除手動更新位,啟動定時器。 0000 1101 0x0d TIME.TCON = TIME.TCON & (0x0d << 8) ; 相關資訊
發表評論
|