新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430單片機(jī)定時器學(xué)習(xí)筆記

MSP430單片機(jī)定時器學(xué)習(xí)筆記

作者: 時間:2013-05-08 來源:網(wǎng)絡(luò) 收藏

msp430 學(xué)習(xí)筆記

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

中斷

#pragma vector=TIMERA0_VECTOR

__interrupt void Timer_A(void)

{

}

TACTL timerA控制寄存器

TAR timerA計數(shù)器

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

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

CCTL1 捕獲/比較寄存器1

CCR1 捕獲/比較寄存器1

CCTL2 捕獲/比較寄存器2

CCR2 捕獲/比較寄存器2

TAIV 中斷向量寄存器

其中,,CCR2,CCR1三者共用一個中斷向量

TimerA輸出模式:

輸出模式0 輸出模式:輸出信號OUTx由每個捕獲/比較模塊的控制寄存器CCTLx中的OUTx位定義,并在寫入該寄存器后立即更新。最終位OUTx直通。

輸出模式1 置位模式:輸出信號在TAR等于CCRx時置位,并保持置位到復(fù)位或選擇另一種輸出模式為止。

輸出模式2 PWM翻轉(zhuǎn)/復(fù)位模式:輸出在TAR的值等于CCRx時翻轉(zhuǎn),當(dāng)TAR的值等于CCR0時復(fù)位。

輸出模式3 PWM置位/復(fù)位模式:輸出在TAR的值等于CCRx時置位,當(dāng)TAR的值等于CCR0時復(fù)位。

輸出模式4 翻轉(zhuǎn)模式:輸出電平在TAR的值等于CCRx時翻轉(zhuǎn),輸出周期是定時器周期的2倍。

輸出模式5 復(fù)位模式:輸出在TAR的值等于CCRx時復(fù)位,并保持低電平直到選擇另一種輸出模式。

輸出模式6 PWM翻轉(zhuǎn)/置位模式:輸出電平在TAR的值等于CCRx時翻轉(zhuǎn),當(dāng)TAR值等于CCR0時置位。

輸出模式7 PWM復(fù)位/置位模式:輸出電平在TAR的值等于CCRx時復(fù)位,當(dāng)TAR的值等于CCR0時置位

TACTL

15-10 9 8 7 6 5 4 3 2 1 0

未使用 SSEL1 SSEL0 ID1 ID0 MC1 MC0 未使用 CLR TAIE TAIFG

定時器時鐘源選擇:

SSEL1 SSEL0

0 0 (特定外部信號)

0 1 (TASSEL0) ACLK

1 0 (TASSEL1) SMCLK

1 1 (INCLK)

通過MC1 MC0組合值來覺得TimerA的工作模式

0 0 停止模式。停止模式下,定時器不復(fù)位,回復(fù)工作后,按照停止時刻的狀態(tài)繼續(xù)運(yùn)行

如果需要情況,請使用TACTL中的CLR清空

0 1 增計數(shù)模式

TAR == CCR1的時候產(chǎn)生一次中斷。但是只有TAR == CCR0的時候,定時器才復(fù)位。(65535)

1 0 連續(xù)技術(shù)模式

0---0x0FFFH之后重新計數(shù)

1 1 增/減計數(shù)模式 先增,后減,產(chǎn)生堆成波形。

先到CCR0,然后減到0.周期翻倍。

對于更改CCR0的時

如果更改CCRO的值比之前大,則直接走到更改的值返回復(fù)位。

如果更改的值比之前的值小,分為2種情況:

1,此時時鐘處于高,則遇到下降沿立馬復(fù)位。

2.如果時鐘處于低,則在下一個時鐘周期下降沿復(fù)位(多往前走一個時鐘周期)

修改TAR CACTL 中CLR,CM0 CM1的時候,需要先停止計數(shù)器

//就是把當(dāng)前計數(shù)器TAR的值抓取放到CCRX當(dāng)中

當(dāng)CCTLx中的CAPx=1,該模塊工作在捕獲模式。這時如果在選定的引腳上發(fā)生設(shè)定的脈沖觸發(fā)沿(上升沿、下降沿或任意跳變),則TAR中的值將寫入到CCRx中。

當(dāng)捕獲完成后,中斷標(biāo)志位CCIFGx 被置位。



關(guān)鍵詞: MSP430 單片機(jī) 定時器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉