MSP430功能模塊詳解系列之——TimerA
定時(shí)器A是一個(gè)16位的定時(shí)/計(jì)數(shù)器。它有3個(gè)捕獲/比較寄存器;能支持多個(gè)時(shí)序控制、多個(gè)捕獲/比較功能和多個(gè)PWM輸出;有廣泛的中斷功能,中斷可由計(jì)數(shù)器溢出產(chǎn)生,也可以由捕獲/比較寄存器產(chǎn)生。
一、TimerA的4種工作模式
1.停止模式
用于定時(shí)器暫停,并不發(fā)生復(fù)位,所有寄存器現(xiàn)行的內(nèi)容在停止模式結(jié)束后都可用。當(dāng)定時(shí)器暫停后重新計(jì)數(shù)時(shí),計(jì)數(shù)器將從暫停時(shí)的值開始以暫停前的計(jì)數(shù)方向計(jì)數(shù)。
2.增計(jì)數(shù)模式
捕獲/比較寄存器CCR0用作Timer_A增計(jì)數(shù)模式的周期寄存器。因?yàn)镃CR0為16位寄存器,所以該模式適用于定時(shí)器周期小于65536的連續(xù)計(jì)數(shù)情況。計(jì)數(shù)器TAR可以增計(jì)數(shù)到CCR0的值,當(dāng)計(jì)數(shù)值與CCR0的值相等(或定時(shí)器值大于CCR0的值)時(shí),定時(shí)器復(fù)位并從0開始重新計(jì)數(shù)。
3.連續(xù)計(jì)數(shù)模式
在需要65536個(gè)時(shí)鐘周期的定時(shí)應(yīng)用場(chǎng)合常用連續(xù)計(jì)數(shù)模式。定時(shí)器從當(dāng)前值計(jì)數(shù)到0FFFH后,又從0開始重新計(jì)數(shù)。
連續(xù)計(jì)數(shù)模式的典型應(yīng)用:
產(chǎn)生多個(gè)獨(dú)立的時(shí)序信號(hào)。利用捕獲比較寄存器捕獲各種其它外部事件發(fā)生的定時(shí)器數(shù)據(jù)。
產(chǎn)生多個(gè)定時(shí)信號(hào)。
4.增/減計(jì)數(shù)模式
需要生成對(duì)稱波形的情況經(jīng)??梢允褂迷?減計(jì)數(shù)模式。該模式下,定時(shí)器先增計(jì)數(shù)到CCR0的值,然后反向減計(jì)數(shù)到0。計(jì)數(shù)周期仍由CCR0定義,它是CCR0計(jì)數(shù)器值的2倍。
二、TimerA寄存器說明
寄存器
寄存器說明
類型
地址
初始狀態(tài)
TACTL
Timer_A控制寄存器
讀寫
160H
POR復(fù)位
TAR
Timer_A計(jì)數(shù)器
讀寫
170H
POR復(fù)位
CCTL0
捕獲/比較控制寄存器0
讀寫
162H
POR復(fù)位
CCR0捕獲/比較寄存器0讀寫
172HPOR復(fù)位
CCTL1捕獲/比較控制寄存器1
讀寫
164HPOR復(fù)位
CCR1捕獲/比較寄存器1讀寫
174HPOR復(fù)位
CCTL2捕獲/比較控制寄存器2
讀寫
166HPOR復(fù)位
CCR2捕獲/比較寄存器2讀寫
176HPOR復(fù)位
TAIV中斷向量寄存器讀寫
12EHPOR復(fù)位
1.TACTL控制寄存器,各位定義:
15-10
9876
5
4
3
2
1
0
未用
SSEL1SSEL0ID1ID0MC1MC0未用CLRTAIETAIFGSSEL1、SSEL0選擇進(jìn)入定時(shí)器分頻器的時(shí)鐘源,
SSEL1
SSEL0
輸入時(shí)鐘源
說明
00TACLK用特定的外部引腳信號(hào)01ACLK輔助時(shí)鐘10MCLK系統(tǒng)時(shí)鐘11INCLK外部輸入時(shí)鐘ID1、ID0輸入分頻系數(shù)
ID1
ID0
分頻系數(shù)
00不分頻011/2分頻101/4分頻111/8分頻MC1、MC0計(jì)數(shù)模式控制位
MC1
MC0
模式
00停止模式01增計(jì)數(shù)模式10減計(jì)數(shù)模式11增/減計(jì)數(shù)模式CLR——定時(shí)器清除。當(dāng)該位為1時(shí),定時(shí)器復(fù)位。
TAIE——定時(shí)器中斷允許位。0:禁止定時(shí)器溢出中斷;1:允許定時(shí)器溢出中斷。
TAIFG——定時(shí)器溢出標(biāo)志位。
增計(jì)數(shù)模式:當(dāng)定時(shí)器由CCR0計(jì)數(shù)到0時(shí),TAIFG置位;
連續(xù)計(jì)數(shù)模式:當(dāng)定時(shí)器由0FFFFH計(jì)數(shù)到0時(shí),TAIFG置位;
增/減計(jì)數(shù)模式:當(dāng)定時(shí)器由CCR0減計(jì)數(shù)到0時(shí),TAIFG置位。
2.TAR16位計(jì)數(shù)器。
3.CCTLx捕捉/比較控制寄存器,各位定義:
15 14
13 12111098
7 6 5
4
3
2
1
0
CAPTMOD1~0
CCIS1~0SCSSCCIxCAP
OUTMODx
CCIEx
CCIx
OUT
COV
CCIFGx
CAPTMOD1~0——選擇捕獲模式
00:禁止捕獲模式
01:上升沿捕獲
10:下降沿捕獲
11:上升沿與下降沿都捕獲
CCIS1~0——捕獲事件輸入源
00:選擇CCIxA
01:選擇CCIxB
10:選擇GND
11:選擇Vcc
SCS——選擇捕獲信號(hào)與定時(shí)器時(shí)鐘同步、異步關(guān)系
0:異步捕獲
1:同步捕獲(實(shí)際中經(jīng)常使用同步模式,捕獲總是有效的)
SCCIx——比較相等信號(hào)EQUx將選中的捕獲/比較輸入信號(hào)CCIx(CCIxA,CCIxB,Vcc和GND)進(jìn)行鎖存,然后可由SCCIx讀出。
CAP——選擇捕獲模式還是比較模式。
0:比較模式
1:捕獲模式
OUTMODx——選擇輸出模式
000:輸出
001:置位
010:PWM翻轉(zhuǎn)/復(fù)位
011:PWM置位/復(fù)位
100:翻轉(zhuǎn)
101:復(fù)位
110:PWM翻轉(zhuǎn)/置位
111:PWM復(fù)位/置位
CCIEx——捕獲/比較模塊中斷允許位
0:禁止中斷
1:允許中斷
CCIx——捕獲/比較模塊的輸入信號(hào)
捕獲模式:由CCIS0和CCIS1選擇的輸入信號(hào)可通過該位讀出
比較模式:CCIx復(fù)位
OUT——輸出信號(hào)(如果OUTMODx選擇輸出模式0,則該位對(duì)應(yīng)于輸入狀態(tài))
0:輸出低電平
1:輸出高電平
COV——捕獲溢出標(biāo)志
0:沒有捕獲溢出
1:發(fā)生捕獲溢出
當(dāng)CAP=0時(shí),選擇比較模式。捕獲信號(hào)發(fā)生復(fù)位。沒有使COV置位的捕獲事件
當(dāng)CAP=1時(shí),選擇捕獲模式。如果捕獲寄存器的值被讀出前再次發(fā)生捕獲事件,則COV置位。程序檢測(cè)COV來判斷原值讀出前是否又發(fā)生捕獲事件。讀捕獲寄存器時(shí)不會(huì)使溢出標(biāo)志復(fù)位,須用軟件復(fù)位。
CCIFGx——捕獲比較中斷標(biāo)志
捕獲模式:寄存器CCRx捕獲了定時(shí)器TAR值時(shí)置位
比較模式:定時(shí)器TAR值等于寄存器CCRx值時(shí)置位
4.CCRx捕捉/比較寄存器:可讀可寫
在捕獲模式,當(dāng)滿足捕獲條件,硬件自動(dòng)將計(jì)數(shù)器TAR數(shù)據(jù)寫入該寄存器。
如果測(cè)量某窄脈沖(高電平)的脈沖長(zhǎng)度,可定義上升沿和下降沿都捕獲。在上升沿時(shí),捕獲一個(gè)定時(shí)器數(shù)據(jù),這個(gè)數(shù)據(jù)在捕獲寄存器中讀出;再等待下降沿到來,在下降沿時(shí)又捕獲一個(gè)定時(shí)器數(shù)據(jù);那么兩次捕獲的定時(shí)器數(shù)據(jù)差就是窄脈沖的高電平寬度。
其中CCR0經(jīng)常用作周期寄存器,其它CCRx相同。
5.TAIV中斷向量寄存器:
Timer_A模塊使用兩個(gè)中斷向量。一個(gè)單獨(dú)分配給捕獲/比較寄存器CCR0;另一個(gè)作為共用中斷向量用于定時(shí)器和其它的捕獲/比較寄存器。
捕獲/比較寄存器CCR0中斷向量具有最高的優(yōu)先級(jí)。因?yàn)镃CR0能用于定義增計(jì)數(shù)和增/減計(jì)數(shù)模式的周期。因此,它需要最快速的服務(wù)。CCIFG0在被中斷服務(wù)時(shí)能自動(dòng)復(fù)位。
CCR1~CCRx和定時(shí)器共用另一個(gè)中斷向量,屬于多源中斷,對(duì)應(yīng)的中斷標(biāo)志CCIFG1~CCIFGx和TAIFG1在讀中斷向量字TAIV后,自動(dòng)復(fù)位。如果不訪問TAIV寄存器,則不能自動(dòng)復(fù)位,須用軟件清除。
15~5
4~ 100~0
中斷向量0中斷優(yōu)先級(jí)
中斷源
縮寫
TAIV的內(nèi)容
最高捕獲/比較器1CCIFG12捕獲/比較器2CCIFG24......
捕獲/比較器xCCIFGx
最低定時(shí)器溢出TAIFG110沒有中斷將掛起