mini2440定時器學習筆記
雖然定時器較多,但工作原理都是相同的,只需要理解一個定時器的工作原理即可。對于某一個定時器,其內部結構原理圖如圖二所示。緩存寄存器TCMPBn和TCNTBn用于緩存定時器n的比較值和初始值;TCON用于控制定時器的開啟與關閉;通過讀取寄存器TCNTOn得到定時器當前計數(shù)值。
其中: prescaler value=0~255 (它的值由TCFG0寄存器設置,如下圖)
TCFG0 | 位 | 描述 | 初始值 |
保留 | [31:24] | 0x00 | |
Dead zone length | [23:16] | 此8位決定死區(qū)長度。死區(qū)長度的單位時間等于定時器0的單位時間 | 0x00 |
Prescaler 1 | [15:8] | 此8位決定定時器2,3,4的預標定器值 | 0x00 |
Prescaler 0 | [7:0] | 此8位決定定時器0,1的預標定器值 | 0x00 |
位 | 描述 | 初始值 | |
Timer 0 computer buffer register | [15:0] | Set compare buffer value for Timer0 | 0x00000000 |
位 | 描述 | 初始值 | |
Timer 0 count buffer register | [15:0] | Set count buffer value for Timer 0 | 0x00000000 |
例1:結合上面講解可知,定時器0的輸入時鐘是經(jīng)過PCLK分頻的得到的,下圖展示了其產(chǎn)生過程。
-------------------------------------分割線---------------------------------------------------
分析:在上題中出現(xiàn)了TCFG1和TCFG0兩個定時器配置寄存器,其中TCFG0配置寄存器控制第一級分頻器prescaler的分頻系數(shù),TCFG1配置寄存器控制多路選擇開關,選擇第二級分頻器divider的分頻系數(shù)。具體如下圖所示:
-----------------------------------------分割線---------------------------------------------------
例2:PCLK為50MHz,請設置適當?shù)姆诸l系數(shù),使定時器0的輸入時鐘為62.5kHz。
答:已知PCLK為50MHz,則50MHz/62.5kHz=800,即需要對PCLK進行800分頻。所以,使第一級分頻器的分頻系數(shù)為100,第2級的分頻系數(shù)為8即可滿足要求。最后,只需要將分頻系數(shù)寫入定時器控制寄存器中相應的位即可,代碼如下:
1
2
3
4 rTCFG1|=0x02;將TCFG1的低4位賦值為0x02,即選擇8分頻輸出
評論