閱讀146 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go COM數據類型
  下一篇:go 解決單文檔滾動條程序中顯示圖像閃爍問題