MSP430:定時(shí)器學(xué)習(xí)TimerA
一、時(shí)鐘源
1、時(shí)鐘源:ACLK/SMCLK 外部TACLK/INCLK
2、分頻:1/2/4/8 當(dāng) (注:TACLR 置位時(shí),分頻器復(fù)位)
二、計(jì)數(shù)模式
通過(guò)設(shè)置MCx可以設(shè)置定時(shí)器的計(jì)數(shù)模式
1、停止模式:停止計(jì)數(shù)
2、單調(diào)增模式:定時(shí)器循環(huán)地從0增加到TACCR0值
周期 :TACCR0
CCIFG :Timer計(jì)到TACCR0值時(shí)觸發(fā)
TAIFG :Timer計(jì)到0時(shí)觸發(fā)
3、連續(xù)模式 :定時(shí)器循環(huán)從0連續(xù)增加到0xFFFF
周期 :0x10000
TAIFG :Timer計(jì)到0時(shí)觸發(fā)
4、增減模式 :定時(shí)器增計(jì)數(shù)到TACCR0 再?gòu)?TACCR0 減計(jì)數(shù)到 0
周期 :TACCR0值的2倍
CCIFG :Timer計(jì)到TACCR0值時(shí)觸發(fā)
TAIFG :Timer計(jì)到0時(shí)觸發(fā)
三、定時(shí)器A TACCRx 比較模式 (用于輸出和產(chǎn)生定時(shí)中斷)
1、設(shè)置:CAP=0選擇比較
2、輸出信號(hào):比較模式用于選擇 PWM 輸出信號(hào)或在特定的時(shí)間間隔中斷。當(dāng) TAR 計(jì)數(shù)
到 TACCRx 的值時(shí):
a、中斷標(biāo)志 CCIFG=1;
b、內(nèi)部信號(hào) EQUx=1;
c、EQUx 根據(jù)輸出模式來(lái)影響輸出信號(hào)
d、輸入信號(hào) CCI 鎖存到 SCCI
每個(gè)捕獲比較模塊包含一個(gè)輸出單元。輸出單元用于產(chǎn)生如 PWM 這樣的信號(hào)。每個(gè)輸出單元可以根據(jù)
EQU0 和 EQUx 產(chǎn)生 8 種模式的信號(hào)。
3、中斷
TimerA 有 2 個(gè)中斷向量:
a、TACCR0 CCIFG 的 TACCR0 中斷向量
b、所有其他 CCIFG 和 TAIFG 的 TAIV 中斷向量
在捕獲模式下,當(dāng)一個(gè)定時(shí)器的值捕獲到相應(yīng)的 TACCRx 寄存器時(shí), CCIFG 標(biāo)志置位。
在比較模式下,如果 TAR 計(jì)數(shù)到相應(yīng)的 TACCRx 值時(shí),CCIFG 標(biāo)志置位。軟件可以清除或置
位任何一個(gè) CCIFG 標(biāo)志。當(dāng)響應(yīng)的 CCIE 和 GIE 置位時(shí), CCIFG 標(biāo)志就會(huì)產(chǎn)生一個(gè)中斷。
c、TACCR0 CCIFG 標(biāo)志擁有定時(shí)器 A 的最高中斷優(yōu)先級(jí),并有一個(gè)專用的中斷向量,
當(dāng)進(jìn)入 TACCR0 中斷后,TACCR0 CCIFG 標(biāo)志自動(dòng)復(fù)位。
d、TACCR1 CCIFG, TACCR2 CCIFG, 和 TAIFG 標(biāo)志共用一個(gè)中斷向量。中斷向量寄存器 TAIV
用于確定它們中的哪個(gè)要求響應(yīng)中斷。最高優(yōu)先級(jí)的中斷在 TAIV 寄存器中產(chǎn)生一個(gè)數(shù)字(見
寄存器說(shuō)明),這個(gè)數(shù)字是規(guī)定的數(shù)字,可以在程序中識(shí)別并自動(dòng)進(jìn)入相應(yīng)的子程序。禁止定時(shí)
器 A 中斷不會(huì)影響 TAIV 的值。
對(duì) TAIV 的讀寫會(huì)自動(dòng)復(fù)位最高優(yōu)先級(jí)的掛起中斷標(biāo)志。如果另一個(gè)中斷標(biāo)志置位,在結(jié)
束原先的中斷響應(yīng)后會(huì),該中斷響應(yīng)立即發(fā)生。例如,當(dāng)中斷服務(wù)子程序訪問(wèn) TAIV 時(shí),如果
TACCR1 和 TACCR2 CCIFG 標(biāo)志位置位,TACCR1 CCIFG 自動(dòng)復(fù)位。在中斷服務(wù)子程序的 RETI
命令執(zhí)行后,TACCR2 CCIFG 標(biāo)志會(huì)產(chǎn)生另一個(gè)中斷。
四、TimerA的捕獲模式
1、設(shè)置:CAP=1選擇捕獲, CCISx位設(shè)置捕獲的信號(hào)源,CMx位選擇捕獲的沿,上升,下降,或上升下降都
捕獲。
2、如果一個(gè)第二次捕獲在第一次捕獲的值被讀取之前發(fā)生,捕獲比較寄存器就會(huì)產(chǎn)生一個(gè)溢出邏輯,COV
位在此時(shí)置位,如圖 8-11,COV 位必須軟件清除。
五、寄存器
1、TACTL:TimerA控制寄存器
TASSELx:TA時(shí)鐘源選擇
0:TACLK;1:ACLK;2:SMCLK;3:INCLK
IDx: 輸入分頻,分時(shí)鐘源分頻再輸入TimerA
0/1/2/3:1/2/4/8 分頻
MCx: 模式控制
0:停止定時(shí)器;1:增模式,定時(shí)器計(jì)數(shù)到TACCR0;
2:連續(xù)模式,定時(shí)器計(jì)數(shù)到0xFFFF;3:增減模式,0->TACCR0->0
TACLR: 定時(shí)器清零位。該位置位會(huì)復(fù)位 TAR,時(shí)鐘分頻和計(jì)數(shù)方向。TACLR位會(huì)自動(dòng)復(fù)位并讀出值為0
TAIE: TA 中斷允許。該位允許 TAIFG 中斷請(qǐng)求
0:中斷禁止;1:中斷允許
TAIFG: TA中斷標(biāo)記
0:無(wú)中斷掛起;1:中斷掛起
2、TAR:TimerA計(jì)數(shù)寄存器
3、TACCTLx:捕獲比較控制寄存器
CMx:捕獲模式
0:不捕獲;1:上升沿捕獲;2:下降沿捕獲 ;3:上升和下降沿都捕獲
CCISx:捕獲比較選擇,該位選擇 TACCRx 的輸入信號(hào)
0:CCIxA;1:CCIxB;2:GND;3:VCC
SCS:同步捕獲源,該位用于將捕獲通信和時(shí)鐘同步
0:異步捕獲;1:同步捕獲
SCCI:同步的捕獲/比較輸入,所選擇的 CCI 輸入信號(hào)由 EQUx 信號(hào)鎖存,并可通過(guò)該位讀取
CAP:捕獲模式
0:比較模式;1:捕獲模式
OUTMODx:輸出模式位。由于在模式 2,3,6 和 7 下 EQUx= EQU0,因此這些模式對(duì) TACCR0 無(wú)效
0:OUT 位的值;1:置位;2:翻轉(zhuǎn)/復(fù)位;3:置位/復(fù)位
4:翻轉(zhuǎn);5:復(fù)位;6:翻轉(zhuǎn)/置位;7:復(fù)位/置位
CCIE:捕獲比較中斷允許位,該位允許相應(yīng)的 CCIFG 標(biāo)志中斷請(qǐng)求
0:中斷禁止;1:中斷允許
CCI:捕獲比較輸入。所選擇的輸入信號(hào)可以通過(guò)該位讀取
OUT:對(duì)于輸出模式 0,該位直接控制輸出狀態(tài)
0:輸出低電平;1:輸出高電平
COV:捕獲溢出位。該位表示一個(gè)捕獲溢出發(fā)生。COV 必須由軟件復(fù)位。
0:沒(méi)有捕獲溢出發(fā)生;1:有捕獲溢出發(fā)生
CCIFG:捕獲比較中斷標(biāo)志位
0:沒(méi)有中斷掛起;1:有中斷掛起
4、TAIV:TimerA中斷向量寄存器
寄存器的值:
0:無(wú)中斷掛起;
2:捕獲比較1 TACCR1 CCIFG;
4:捕獲比較2 TACCR2 CCIFG;
0xA:定時(shí)器溢出 TAIFG