基於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 = ***; 設定總週期,乙個pwm
設定比較緩衝區暫存器值
time.tcmpb1 = ***/2; 設定是占空比
2.5 手動更新緩衝暫存器中的值到計數器中
設定pwm的步驟:
根據是1.3.15的第二步,先設定手動更新,在清除手動更新,啟動定時器
手動更新,使緩衝器中的值更新到計數器中,雙緩衝機制
time.tcon = time.tcon & (0x0e << 8) ; 0000 1110
清除手動更新位,啟動定時器。 0000 1101 0x0d
time.tcon = time.tcon & (0x0d << 8) ;
輕鬆學ARM系列之I2C匯流排
一 總體架構圖 二 i2c操作的一般步驟 2.1 檢視s5pv210開發板的i2c相關的硬體原理圖 開發板上iic實際連線電路,at24c02為eeprom,大小為2k位,256位元組 核心板對應的原理圖 2.2 設定gpio暫存器為i2c功能 配置gpd1con 0 和 gpd1con 1 為i2...
Linux之輕鬆玩轉Vim
vim常用指令如下表 命令作用 set nu 在每一行前顯示行號 set nonu 取消行號顯示 set mouse a 顯示滑鼠 set cursorline 顯示滑鼠 在vim下進行操作當程序結束時進行的操作都會還原,要想永久儲存操作需要在vim etc vimrc進行引數設定 關鍵字 n向下匹...
輕鬆學Linux之使用轉義字元
轉義字元是c語言中表示字元的一種特殊形式。通常使用轉義字元表示ascii碼字符集中不可列印的控制字元和特定功能的字元,如用於表示字元常量的單撇號 在unix作業系統中有一類特殊的字元,叫做元字元。linux unix系統中,就是採用轉義和引用這兩種方式來處理。系統中有些命令特別複雜,特別是那些部屬在...