專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

msp430定時器A自動溢出

作者:佚名   來源:不詳   點(diǎn)擊數(shù):  更新時間:2014年08月31日   【字體:

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

定時器A自動溢出
簡述:利用Timer_A 直接計(jì)數(shù)產(chǎn)生溢出,然后中斷處理。
ACLK = TACLK = 32768Hz, MCLK = SMCLK = default DCO ~800kHz
例程:*/
//*****************************************************************
#include <msp430x14x.h>
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD; //停止看門狗定時器
  P3DIR |= 0x20; // 設(shè)P3.4 為輸出
  TACTL = TASSEL_1 + MC_2 + TAIE + ID_1; // 輔助時鐘ACLK, 定時器A 連續(xù)計(jì)數(shù)模式,且開中斷功能,8分頻
  CCR0 = 1000-1;
  _BIS_SR(LPM3_bits + GIE); //進(jìn)入LPM3 低功耗模式和開總中斷允許
  for(;;);
}
// Timer_A3中斷向量 (TAIV)處理程序
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
  switch( TAIV ) //應(yīng)用switch語句來處理多中斷源的向量
  { //向量列表通過case 語句來分多中斷源的入口
    case 2: break; // CCR1比較/捕獲寄存器的中斷入口,
    //本例子未用到。
    case 4: break; // CCR2比較/捕獲寄存器的中斷入口,]
    //本例子未用到。
    case 10: P3OUT ^= 0x20; //定時器A在計(jì)滿16位時將產(chǎn)生計(jì)數(shù)溢出中斷
    //進(jìn)入中斷,向量值為10。此中斷處理入口
    break;
  }
}
//*********************************************************************
關(guān)閉窗口

相關(guān)文章