MSP430F5529 (六)定時器Timer_A-1
TACLR位會自動復位并置0
TAIE:定時器中斷使能
0:中斷禁止
1:中斷允許
TAIFG:中斷標志位
0:沒有中斷發生
1:有中斷掛起
6.2.2 計數值存放寄存器TAR
①顯然,最大存放計數值為0xFFFFh;
②(類似51單片機)可以被用來存放一個初值,然后選用連續模式。這樣不斷計滿再手動填充,從而達到精確計時的效果;
③默認為0,且對該寄存器可以直接賦值;
6.2.3 擴展寄存器TAEX0
很簡單,這個寄存器就是為了控制時鐘源的二次分頻(看結構圖)。
該寄存器的低3為定義為TAIDEX:000-111分別表示1-8分頻
6.2.4 捕獲/比較寄存器TACCR0-TACCR4(共5個)
比較模式下,用來設定計數終值;
捕獲模式下用來將捕獲的TAR值存放進TACCRx中。
6.3 MC控制的四種工作模式的詳細講解
6.3.1 MC=0停止模式
這是系統默認的模式,定時計數器禁止工作。
6.3.2 MC=1增模式
總結幾句話:(紅色標記的很重要)
①此模式下嚴禁從0xffff開始計數;
②注意從0計到TACCR0,實際上記了TACCR0+1個數;
③計到TACCR0后,會回到0重新開始計數;
④如果TAR的值大于TACCR0,這時候會立即從0開始計數;
⑤當定時器計數到TACCR0的值時,中斷標志CCIFG位(之后會講到)置位。當定時器由TACCR0返回0時,TAIFG中斷標志置位;
⑥在定時器運行時修改TACCR0,如果新的周期值大于或等于舊的周期值,或大于當前的定時器計數值,那么定時器立刻開始執行新周期計數。如果新周期小于當前的計數值,那么定時器回到0。但是,在回到0之前會多一個額外的計數。
6.3.3 MC=2連續模式
在連續模式中,定時器重復計數到0FFFFH,然后重新從0開始增計數(除非每次重裝計數初值)。當定時器從0FFFFH到0時,TAIFG中斷標志置位。
應用:連續模式下利用捕獲/比較器產生需要的時間間隔。原理是:計數在一直進行,捕獲器TACCRX中存有第一個計數終值,每次捕獲器計到TACCRX時,會產生中斷標志,我們可以在中斷服務函數中寫入一個計算好的下一個的計數終值,這樣無限計算和中斷下去,那么該捕獲器就會產生一個穩定的時間間隔序列。(其實吧,不明白也沒關系。就算明白了,也不好用,因為計算起來很麻煩而且也不好用)
如圖:

6.3.4 MC=3增減模式(常用于生成PWM波)
①該模式下,計數方向是固定的,即讓定時器停止后再重新啟動定時器,它就沿著停止時的計數方向和數值開始計數。如果不希望這樣,就需要將TACLR置位來清除方向。TACLR位也會清除TAR的值和定時器的時鐘分頻。
②此模式下置位情況如下圖:

如果正處于增計數狀態,新周期大于等于原來的周期,或比當前計數值要大,定時器會增計數到新的周期;如果新周期小于原來的周期,定時器立刻開始減計數,但是,在定時器開始減計數之前會多計一個數。
評論