<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單片機定時(shí)器面面觀(guān)

MSP430單片機定時(shí)器面面觀(guān)

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò ) 收藏
對于MSP430 X449而言:

默認情況如下:

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

ACLK= LFXT1 = 32768Hz, 低頻時(shí)鐘源

MCLK=SMCLK= default DCO = 32 x ACLK = 1048576Hz 高頻時(shí)鐘源

ACLK ,MCLK ,SMCLK的頻率可以根據 FLL+相應的寄存器來(lái)調節

時(shí)鐘源有:

LFXT1CLK: 32768 HZ 即:32K

XT2CLK: 4M

DCOCLK: 選擇AP18PF時(shí)

FN_2 1.04875M

FN_3 1.08860M

FN_4 1.710

FN_8 3.4M

以下引腳的復用功能如下:

P1.5 : ACLK 82

P1.4: SMCKL 83

P1.1: MCLK 86

—————————————————————————————————————————

msp430 定時(shí)器學(xué)習筆記

_BIS_SR(LPM3_bits + GIE) //進(jìn)入LPM3低功耗模式和開(kāi)總中斷允許

中斷

#pragma vector=TIMERA0_VECTOR

__interrupt void Timer_A(void)

{

}

TACTL timerA控制寄存器

TAR timerA計數器

CCTL0 捕獲/比較控制寄存器0

CCRO 捕獲/比寄存器0(具有最高中斷優(yōu)先級別,單獨使用一個(gè)中斷向量)

CCTL1 捕獲/比較寄存器1

CCR1 捕獲/比較寄存器1

CCTL2 捕獲/比較寄存器2

CCR2 捕獲/比較寄存器2

TAIV 中斷向量寄存器

其中,定時(shí)器,CCR2,CCR1三者共用一個(gè)中斷向量

——————————————————————————————————————————

定時(shí)器A是一個(gè)16位的定時(shí)/計數器。它有3個(gè)捕獲/比較寄存器;能支持多個(gè)時(shí)序控制、多個(gè)捕獲/比較功能和多個(gè)PWM輸出;有廣泛的中斷功能,中斷可由計數器溢出產(chǎn)生,也可以由捕獲/比較寄存器產(chǎn)生。

一、TimerA的4種工作模式

1. 停止模式

用于定時(shí)器暫停,并不發(fā)生復位,所有寄存器現行的內容在停止模式結束后都可用。當定時(shí)器暫停后重新計數時(shí),計數器將從暫停時(shí)的值開(kāi)始以暫停前的計數方向計數。

2. 增計數模

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

3. 連續計數模式

在需要65536個(gè)時(shí)鐘周期的定時(shí)應用場(chǎng)合常用連續計數模式。定時(shí)器從當前值計數到0FFFH后,又從0開(kāi)始重新計數。

連續計數模式的典型應用:

產(chǎn)生多個(gè)獨立的時(shí)序信號。利用捕獲比較寄存器捕獲各種其它外部事件發(fā)生的定時(shí)器數據。

產(chǎn)生多個(gè)定時(shí)信號。

4. 增/減計數模式

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

二、TimerA寄存器說(shuō)明

寄存器

寄存器說(shuō)明

類(lèi)型

地址

初始狀態(tài)

TACTL

Timer_A控制寄存器

讀寫(xiě)

160H

POR復位

TAR

Timer_A計數器

讀寫(xiě)

170H

POR復位

CCTL0

捕獲/比較控制寄存器0

讀寫(xiě)

162H

POR復位

CCR0捕獲/比較寄存器0

讀寫(xiě)

172H

POR復位

CCTL1

捕獲/比較控制寄存器1

讀寫(xiě)

164H

POR復位

CCR1捕獲/比較寄存器1

讀寫(xiě)

174H

POR復位

CCTL2

捕獲/比較控制寄存器2

讀寫(xiě)

166H

POR復位

CCR2捕獲/比較寄存器2

讀寫(xiě)

176H

POR復位

TAIV中斷向量寄存器

讀寫(xiě)

12EH

POR復位

1. TACTL 控制寄存器,各位定義:

15-10

987

6

5

4

3

2

1

0

未用

SSEL1SSEL0ID1ID0MC1MC0未用CLRTAIETAIFG

SSEL1、SSEL0選擇進(jìn)入定時(shí)器分頻器的時(shí)鐘源

SSEL1

SSEL0

輸入時(shí)鐘源

說(shuō)明

00TACLK用特定的外部引腳信號
01ACLK輔助時(shí)鐘
10MCLK系統時(shí)鐘
11INCLK外部輸入時(shí)鐘

ID1、ID0輸入分頻系數

ID1

ID0

分頻系數

00不分頻
011/2分頻
101/4分頻
111/8分頻

MC1、MC0計數模式控制位

MC1

MC0

模式

00停止模式
01增計數模式
10減計數模式
11增/減計數模式

CLR——定時(shí)器清除。當該位為1時(shí),定時(shí)器復位。

TAIE——定時(shí)器中斷允許位。0:禁止定時(shí)器溢出中斷;1:允許定時(shí)器溢出中斷。

TAIFG——定時(shí)器溢出標志位。

增計數模式:當定時(shí)器由CCR0計數到0時(shí),TAIFG置位;

連續計數模式:當定時(shí)器由0FFFFH計數到0時(shí),TAIFG置位;

增/減計數模式:當定時(shí)器由CCR0減計數到0時(shí),TAIFG置位。

2. TAR 16位計數器。

3. CCTLx 捕捉/比較控制寄存器,各位定義:

15 14

13 1211109

8

7 6 5

4

3

2

1

0

CAPTMOD1~0

CCIS1~0SCSSCCIx

CAP

OUTMODx

CCIEx

CCIx

OUT

COV

CCIFGx

CAPTMOD1~0——選擇捕獲模式

00:禁止捕獲模式

01:上升沿捕獲

10:下降沿捕獲

11:上升沿與下降沿都捕獲

CCIS1~0——捕獲事件輸入源

00:選擇CCIxA

01:選擇CCIxB

10:選擇GND

11:選擇Vcc

SCS——選擇捕獲信號與定時(shí)器時(shí)鐘同步、異步關(guān)系

0:異步捕獲

1:同步捕獲(實(shí)際中經(jīng)常使用同步模式,捕獲總是有效的)

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

CAP——選擇捕獲模式還是比較模式。

0:比較模式

1:捕獲模式

OUTMODx——選擇輸出模式

000:輸出

001:置位

010:PWM翻轉/復位

011:PWM置位/復位

100:翻轉

101:復位

110:PWM翻轉/置位

111:PWM復位/置位

CCIEx——捕獲/比較模塊中斷允許位

0:禁止中斷

1:允許中斷

CCIx——捕獲/比較模塊的輸入信號

捕獲模式:由CCIS0和CCIS1選擇的輸入信號可通過(guò)該位讀出

比較模式:CCIx復位

OUT——輸出信號(如果OUTMODx選擇輸出模式0,則該位對應于輸入狀態(tài))

0:輸出低電平

1:輸出高電平

COV——捕獲溢出標志

0:沒(méi)有捕獲溢出

1:發(fā)生捕獲溢出

當CAP=0時(shí),選擇比較模式。捕獲信號發(fā)生復位。沒(méi)有使COV置位的捕獲事件。

當CAP=1時(shí),選擇捕獲模式。如果捕獲寄存器的值被讀出前再次發(fā)生捕獲事件,則COV置位。程序檢測COV來(lái)判斷原值讀出前是否又發(fā)生捕獲事件。讀捕獲寄存器時(shí)不會(huì )使溢出標志復位,須用軟件復位。

CCIFGx——捕獲比較中斷標志

捕獲模式:寄存器CCRx捕獲了定時(shí)器TAR值時(shí)置位

比較模式:定時(shí)器TAR值等于寄存器CCRx值時(shí)置位

4. CCRx 捕捉/比較寄存器:可讀可寫(xiě)

在捕獲模式,當滿(mǎn)足捕獲條件,硬件自動(dòng)將計數器TAR數據寫(xiě)入該寄存器。

如果測量某窄脈沖(高電平)的脈沖長(cháng)度,可定義上升沿和下降沿都捕獲。在上升沿時(shí),捕獲一個(gè)定時(shí)器數據,這個(gè)數據在捕獲寄存器中讀出;再等待下降沿到來(lái),在下降沿時(shí)又捕獲一個(gè)定時(shí)器數據;那么兩次捕獲的定時(shí)器數據差就是窄脈沖的高電平寬度。

其中CCR0經(jīng)常用作周期寄存器,其它CCRx相同。

5. TAIV 中斷向量寄存器:

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

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

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

15~5

4~ 10

0~0

中斷向量0

中斷優(yōu)先級

中斷源

縮寫(xiě)

TAIV的內容

最高捕獲/比較器1CCIFG12
捕獲/比較器2CCIFG24
......
捕獲/比較器xCCIFGx
最低定時(shí)器溢出TAIFG110
沒(méi)有中斷將掛起

————————————————————————————————————————————————

//******************************************************************************

//

// Lierda, Inc

// Built with IAR Embedded Workbench Version: 3.41a

// ID: MSP430-TEST44X

// 程序功能:實(shí)現延時(shí) 1S,驅動(dòng)LED4閃爍

// 通過(guò)本實(shí)驗了解MSP430內部的時(shí)鐘來(lái)源和不同頻率的設置。

// 硬件連接:在必須連接P1.1、P1.5短接器,

//******************************************************************************

#include "msp430x44x.h"

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 停止看門(mén)狗定時(shí)器

TACTL = TASSEL0 +TACLR; //選擇ACLK為分頻時(shí)鐘源,清TAR

TACTL |= MC0; //開(kāi)啟Timer_A,連續計數模式

CCTL0 = CCIE; //開(kāi)啟Timer_A的中斷

CCR0 = 32000; //延時(shí)32000/32k=1s

P5DIR |= BIT1;

P5OUT |= BIT1;

while(1)

{

_BIS_SR(LPM3_bits+GIE); //進(jìn)入低功耗模式

}

}

#pragma vector=TIMERA0_VECTOR

__interrupt void Time_A()

{

P5OUT ^=BIT1;

}



關(guān)鍵詞: MSP430單片機定時(shí)

評論


技術(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>