<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > MSP430學(xué)習筆記(2)定時(shí)器A

MSP430學(xué)習筆記(2)定時(shí)器A

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏
3.定時(shí)器A:

所有MSP430系列的FLASH型單片機都含有定時(shí)器A(Timer_A),由一個(gè)16位定時(shí)器和多路比較/捕獲通道組成。每個(gè)比較/捕獲通道都是以16位定時(shí)器的定時(shí)功能為核心進(jìn)行單獨的控制。

本文引用地址:http://dyxdggzs.com/article/201611/322336.htm

1)定時(shí)器由以下部分組成:

a)計數器部分:輸入的時(shí)鐘源具有4種選擇,所選定的時(shí)鐘源又可以1、2、4、8分頻作為計數頻率。

b)捕獲/比較器:用于捕獲時(shí)間發(fā)生的時(shí)間或產(chǎn)生時(shí)間間隔,每個(gè)捕獲/比較的結構完全相同,輸入輸出都決定于各自所帶的控制寄存器的控制字,捕獲/比較器相互之間獨立。

c)輸出單元:具有可選的8種輸出模式,用于產(chǎn)生用戶(hù)需要的輸出信號并支持PWM。

2)Timer_A寄存器:

a)TACTL:控制寄存器:POR信號后全都自動(dòng)復位,PUC信號后不受影響。

i.TASSEL1,TASSEL0:選擇定時(shí)器輸入分頻器的時(shí)鐘源,00為T(mén)ACLK,特定的外部引腳的信號,01為ACLK,10為SMCLK,11為INCLK。

ii.ID1,ID0,輸入分頻選擇,00不分頻,01為2分頻,10為4分頻,11為8分頻。(由SSEL1,SSEL0選擇時(shí)鐘源,然后再由ID0和ID1選擇分頻系數將輸入信號分頻,分頻后的信號才用于計數器計數)。

iii.MC1,MC0:計數模式控制位:00為停止計數,01為增計數模式,10為連續計數模式,11為增減計數模式。

iv.TACLR:定時(shí)器清除位。POR或CLR置位時(shí)定時(shí)器和輸入分頻器復位。CLR由硬件自動(dòng)復位,其讀出時(shí)鐘為0.

v.TAIE:定時(shí)器中斷允許位,1時(shí)允許定時(shí)器溢出中斷。

vi.TAIFG:定時(shí)器溢出標志位,增計數由CCR0到0時(shí)TAIFG置位,連續計數由0FFFFH計數到0時(shí),TAIFG置位,增/減計數模式定時(shí)器由1減到0時(shí)TAIFG置位。

b)TAR:16位計數器,計數的主體,可讀可寫(xiě)。(PA:當計數時(shí)鐘不是MCLK時(shí),在計數器停止計數時(shí)寫(xiě),否則與CPU產(chǎn)生時(shí)間競爭,推薦先停止定時(shí)器,修改控制寄存器,再啟動(dòng)定時(shí)器工作)。

c)CCTLx:捕獲/比較控制寄存器

i.CM1,CM0:選擇捕獲模式,00為禁止捕獲模式,01為上升沿捕獲,10為下降沿捕獲,11為上升沿和下降沿都捕獲。

ii.CCIS1,CCIS0:在捕獲模式中用來(lái)定義提供捕獲事件的輸入源,00選擇CCIxA,01選擇CCIxB,10選擇GND,11選擇Vcc。

iii.SCS:選擇捕獲信號與定時(shí)時(shí)鐘同步,異步關(guān)系,0異步捕獲,1同步捕獲。(異步捕獲允許在請求時(shí)立即將CCIFG置位并捕獲定時(shí)器的值,用于捕獲信號周期遠大于定時(shí)器周期的情況。實(shí)際常用同步捕獲模式)。

iv.比較相等信號EQUx將選中的捕獲/比較輸入信號CCIx(CCIxA,CCIxB,Vcc,GND)進(jìn)行鎖存,可由SCCIx讀出。

v.CAP:選擇捕獲模式還是比較模式,0為比較模式,1為捕獲模式。(由比較模式改為捕獲模式的順序:修改控制寄存器,由比較模式切換到捕獲模式,再進(jìn)行捕獲)。

vi.OUTMODx:選擇輸出模式。000為輸出,001為置位,010位PWM翻轉/復位,011為PWM置位/翻轉,100為翻轉,101為復位,110為PWM翻轉/置位,111為PWM復位/置位。

vii.CCIEx捕獲/比較模塊中斷允許位。0為禁止中斷,1為允許中斷。

viii.CCIx:捕獲/比較模塊的輸入信號,捕獲模式:由CCIS0和CCIS1選擇的輸入信號可通過(guò)該位讀出。比較模式:CCIx復位。

ix.OUT:輸出信號,0輸出低電平,1輸出高電平。

x.COV:捕獲溢出標志,0為沒(méi)有捕獲溢出,1為發(fā)生捕獲溢出。當選擇比較模式時(shí),沒(méi)有使COV置位的捕獲事件。當選擇捕獲模式時(shí),如果捕獲寄存器的值被讀出前再次發(fā)生捕獲事件,則COV置位。程序可檢測COV來(lái)判斷原值讀出前是否又發(fā)生捕獲事件。讀捕獲寄存器時(shí)不會(huì )使溢出中斷標志位復位,需要軟件復位。

xi.CCIFGx:捕獲比較中斷標志。捕獲模式時(shí)寄存器CCRx捕獲定時(shí)器TAR值時(shí)置位。比較模式定時(shí)器TAR值等于寄存器CCRx值時(shí)置位。

xii.CCRx:捕獲/比較寄存器:在捕獲/比較模塊中,可讀可寫(xiě)。在捕獲方式,當滿(mǎn)足捕獲條件,硬件自動(dòng)將計數器TAR數據寫(xiě)入該寄存器。如果測量某窄脈沖(高電平)的脈沖長(cháng)度,可定義上升沿和下降沿都捕獲。在上升沿時(shí)捕獲一個(gè)定時(shí)器數據,下降沿再捕獲一個(gè)。其中CCR0經(jīng)常用作周期寄存器,其他CCRx相同。

xiii.TAIV:中斷向量寄存器。Timer_A中斷可由計數器溢出引起,也可以來(lái)自捕獲/比較寄存器。每個(gè)捕獲/比較模塊可獨立編程,由捕獲/比較外部信號以產(chǎn)生中斷。外部信號可以是上升沿,可以是下降沿,可以?xún)烧呔小?/p>

1.Timer_A模塊使用兩個(gè)中斷向量,一個(gè)單獨分配給捕獲/比較寄存器CCR0,另一個(gè)作為公用中斷向量用于定時(shí)器和其他捕獲/比較寄存器。

2.捕獲/比較寄存器CCR0中斷向量具有最高的優(yōu)先級,因為其能用于定義增計數和增/減計數模式的周期,需要最快速的服務(wù)。CCIFG0在中斷時(shí)能自動(dòng)復位。

3.CCR1~CCRx和定時(shí)器共用另一個(gè)中斷向量,屬于多源中斷,對應的中斷標志位CCIFG1~CCIFGx和TAIFG1在讀中斷向量字TAIV后自動(dòng)復位。若不訪(fǎng)問(wèn)TAIV寄存器,則需軟件清除。

4.如果有Timer_A中斷標志位,則TAIV為相應的數據。該數據與PC(程序計數器)相加可使系統自動(dòng)進(jìn)入響應的中斷服務(wù)程序。

3)定時(shí)器工作原理:

a)停止模式:用于定時(shí)器暫停,不發(fā)生復位,所有寄存器現在的內容在停止模式結束后都可用。當定時(shí)器暫停后重新計數時(shí),計數器將從暫停時(shí)的值開(kāi)始以暫停前的計數方向計數。也可通過(guò)CLR來(lái)清除定時(shí)器的方向記憶特性。

b)增計數模式:捕獲/比較寄存器CCR0用作Timer_A增計數模式的周期寄存器,CCR0為16位寄存器,適用于定時(shí)周期小于65536的連續計數情況。計數器TAR可以增計數到CCR0的值,當計數值與CCR0值相等(或定時(shí)器值大于CCR0時(shí)),定時(shí)器復位并從0開(kāi)始計數。

i.當定時(shí)器值等于CCR0時(shí),設置標志位CCIFG0為1,當定時(shí)器從CCR0計數到0時(shí),設置標志位TAIFG為1。

ii.計數過(guò)程中還可以通過(guò)改變CCR0的值來(lái)重置計數周期。當新周期大于舊周期時(shí),定時(shí)器會(huì )直接增計數到新周期。

c)連續計數模式:在需要65536個(gè)時(shí)鐘周期的定時(shí)器應用場(chǎng)合常用連續計數模式。定時(shí)器從當前值計數到0FFFFH后又從0開(kāi)始計數。當定時(shí)器從0FFFFH到0時(shí)設置標志位TAIFG。

d)增/減計數模式:需要對稱(chēng)波形的情況經(jīng)??梢允褂迷?減計數模式,該模式下,定時(shí)器先計數到CCR0的值,然后反向減計數到0。計數周期仍由CCR0定義,它是CCR0的2倍。

4)捕獲/比較模塊:Timer_A捕獲/比較的每個(gè)模塊都可用于捕獲事件發(fā)生的時(shí)間或產(chǎn)生定時(shí)間隔。當捕獲時(shí)間發(fā)生或者定時(shí)時(shí)間到達都將引發(fā)中斷。捕獲/比較寄存器與定時(shí)器總線(xiàn)連接,可在滿(mǎn)足捕獲條件時(shí)將TAR的值寫(xiě)入捕獲寄存器;可在TAR的值與比較器值相等時(shí)設置標志位。通過(guò)CCTLx中的CAPx選擇模式,該模塊可用于捕獲模式,也可用于比較模式。用CCISx1和CCISx2選擇捕獲的輸入信號源,輸入信號可以是來(lái)自外部引腳的信號,也可以是來(lái)自?xún)炔康男盘枴?/p>

a)捕獲模式:這時(shí)如果在選定的引腳上發(fā)生設定的脈沖觸發(fā)沿,則TAR的值寫(xiě)入CCRx。捕獲完成后CCIFGx被置位,如果GIE和CCIEx允許,則產(chǎn)生中斷。PA:捕獲信號與定時(shí)器時(shí)鐘同步,將捕獲/比較中斷標志置位,并將定時(shí)器數值存入捕獲寄存器。他們同步特性可避免定時(shí)器和捕獲信號的時(shí)間競爭。非同步信號支持低速定時(shí)器的時(shí)間應用。捕獲時(shí)間與定時(shí)器時(shí)鐘可能產(chǎn)生時(shí)間競爭,因而導致捕獲數據無(wú)效。

b)比較方式主要用于軟件或者應用硬件產(chǎn)生定時(shí),還可以為D/A轉換、馬達控制產(chǎn)生PWM信號。獨立的輸出模塊被分配給各個(gè)捕獲/比較寄存器的每一個(gè),輸出模塊可以獨立運行于比較功能,或以各種方式觸發(fā)。當TAR的值大于或等于CCR0的值時(shí),EQU0=1;當TAR的值等于相應的CCR1或CCR2時(shí),EQU1=1或EQU2=1。

5)輸出單元:每個(gè)捕獲/比較模塊都包含一個(gè)輸出單元,用于產(chǎn)生輸出信號。每個(gè)輸出單元有8種工作模式,由OUTMOD0~3決定。

6)Timer_A實(shí)現PWM:

如果Timer_A定時(shí)器的計數器工作在增計數模式,輸出采用模式7(復位/置位模式),則可利用寄存器CCR0控制PWM波形的周期,用某個(gè)寄存器CCRx來(lái)控制占空比。這樣Timer_A就能產(chǎn)生任意占空比的PWM波。

改變占空比的方法是:保持CCR0的值(周期不變),改變CCRx的值(占空比變)



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>