专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

msp430定时器A自动溢出

作者:佚名   来源:不详   点击数:  更新时间:2014年08月31日   【字体:

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

定时器A自动溢出
简述:利用Timer_A 直接计数产生溢出,然后中断处理。
ACLK = TACLK = 32768Hz, MCLK = SMCLK = default DCO ~800kHz
例程:*/
//*****************************************************************
#include <msp430x14x.h>
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD; //停止看门狗定时器
  P3DIR |= 0x20; // 设P3.4 为输出
  TACTL = TASSEL_1 + MC_2 + TAIE + ID_1; // 辅助时钟ACLK, 定时器A 连续计数模式,且开中断功能,8分频
  CCR0 = 1000-1;
  _BIS_SR(LPM3_bits + GIE); //进入LPM3 低功耗模式和开总中断允许
  for(;;);
}
// Timer_A3中断向量 (TAIV)处理程序
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
  switch( TAIV ) //应用switch语句来处理多中断源的向量
  { //向量列表通过case 语句来分多中断源的入口
    case 2: break; // CCR1比较/捕获寄存器的中断入口,
    //本例子未用到。
    case 4: break; // CCR2比较/捕获寄存器的中断入口,]
    //本例子未用到。
    case 10: P3OUT ^= 0x20; //定时器A在计满16位时将产生计数溢出中断
    //进入中断,向量值为10。此中断处理入口
    break;
  }
}
//*********************************************************************
关闭窗口

相关文章