MSP430單片機定時器學習筆記
msp430 定時器學習筆記
_BIS_SR(LPM2_bits + GIE) //進入LPM3低功耗模式和開總中斷允許
中斷
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
}
TACTL timerA控製寄存器
TAR timerA計數器
CCTL0 捕獲/比較控製寄存器0
CCRO 捕獲/比寄存器0(具有最高中斷優先級別,單獨使用一個中斷向量)
CCTL1 捕獲/比較寄存器1
CCR1 捕獲/比較寄存器1
CCTL2 捕獲/比較寄存器2
CCR2 捕獲/比較寄存器2
TAIV 中斷向量寄存器
其中,定時器,CCR2,CCR1三者共用一個中斷向量
TimerA輸出模式:
輸出模式0 輸出模式:輸出信號OUTx由每個捕獲/比較模塊的控製寄存器CCTLx中的OUTx位定義,並在寫入該寄存器後立即更新。最終位OUTx直通。
輸出模式1 置位模式:輸出信號在TAR等於CCRx時置位,並保持置位到定時器複位或選擇另一種輸出模式為止。
輸出模式2 PWM翻轉/複位模式:輸出在TAR的值等於CCRx時翻轉,當TAR的值等於CCR0時複位。
輸出模式3 PWM置位/複位模式:輸出在TAR的值等於CCRx時置位,當TAR的值等於CCR0時複位。
輸出模式4 翻轉模式:輸出電平在TAR的值等於CCRx時翻轉,輸出周期是定時器周期的2倍。
輸出模式5 複位模式:輸出在TAR的值等於CCRx時複位,並保持低電平直到選擇另一種輸出模式。
輸出模式6 PWM翻轉/置位模式:輸出電平在TAR的值等於CCRx時翻轉,當TAR值等於CCR0時置位。
輸出模式7 PWM複位/置位模式:輸出電平在TAR的值等於CCRx時複位,當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 停止模式。停止模式下,定時器不複位,回複工作後,按照停止時刻的狀態繼續運行
如果需要情況,請使用TACTL中的CLR清空
0 1 增計數模式
TAR == CCR1的時候產生一次中斷。但是隻有TAR == CCR0的時候,定時器才複位。(65535)
1 0 連續技術模式
0---0x0FFFH之後重新計數
1 1 增/減計數模式 先增,後減,產生堆成波形。
先到CCR0,然後減到0.周期翻倍。
對於更改CCR0的時
如果更改CCRO的值比之前大,則直接走到更改的值返回複位。
如果更改的值比之前的值小,分為2種情況:
1,此時時鍾處於高,則遇到下降沿立馬複位。
2.如果時鍾處於低,則在下一個時鍾周期下降沿複位(多往前走一個時鍾周期)
修改TAR CACTL 中CLR,CM0 CM1的時候,需要先停止計數器
//就是把當前計數器TAR的值抓取放到CCRX當中
當CCTLx中的CAPx=1,該模塊工作在捕獲模式。這時如果在選定的引腳上發生設定的脈衝觸發沿(上升沿、下降沿或任意跳變),則TAR中的值將寫入到CCRx中。
當捕獲完成後,中斷標誌位CCIFGx 被置位
最後更新:2017-04-02 06:51:22