⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timea计数模式.txt

📁 msp430看门狗定时比较实用 比较实用 比较实用 比较实用 比较实用
💻 TXT
字号:
 此例程已在MC430F11实验板上验证过
//利用MC430F11开发板实验的TimerA 增计数模式学习实验.
//编写:www.microcontrol.cn  DC
#include <msp430x11x1.h>
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // 停止
  P1DIR |= BIT0+BIT2+BIT3;                  // P1.0,P1.2,P1.3为输出
  CCTL0 = CCIE;                             // CCR0中断允许
  CCR0  = 8000;                             // 为CCR0写入初值
  CCTL1 = CCIE;
  CCR1  = 6000;
  CCTL2 = CCIE;
  CCR2  = 4000;
  
  TACTL = TASSEL_1 + MC_2;                  // 设置TA工作模式
                                            // 时钟源=ACLK,工作在连续计数模式
  _EINT();
  LPM0;
}

// Timer A0 中断服务程序, A0是指CCR0
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
{
  P1OUT ^= BIT0;                            // MC430F11板上的D1 LED闪烁
  CCR0  = CCR0+8000;                        //增加下一次相等的计数值
}

// Timer A3 中断服务程序, A3是指CCR1,CCR2,TAR
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A3(void)
{
 switch( TAIV )
 {
   case  2: P1OUT ^= BIT2;                   // CCR1-CCIFG1
            CCR1  = CCR1+6000;               //增加下一次相等的计数值
            break;                           // MC430F11板上的D2 LED闪烁
   case  4: P1OUT ^= BIT3;                   // CCR2-CCIFG2
             CCR2 = CCR2+4000;              //增加下一次相等的计数值
            break;                           // MC430F11板上的D3 LED闪烁
   case 10:                                 // TAR-TAIFG,TAR中断在此例程中未用上
            break;
 }
}
 此例程已在MC430F11实验板上验证过
//利用MC430F11开发板实验的TimerA 增计数模式学习实验.
//作者:微控设计网 DC版主
#include <msp430x11x1.h>
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // 停止
  P1DIR |= BIT0+BIT2+BIT3;                  // P1.0,P1.2,P1.3为输出
  CCTL0 = CCIE;                             // CCR0中断允许
  CCR0  = 8000;                             // 为CCR0写入初值
  CCTL1 = CCIE;                             // 类同上...
  CCR1  = 6000;
  CCTL2 = CCIE;                             // 类同上...
  CCR2  = 4000;
  
  TACTL = TASSEL_1 + MC_1;                  // 设置TA工作模式
                                            // 时钟源=ACLK,工作在增计数模式
  _EINT();                                  //开总中断
  LPM0;                                     //进入低功耗模式0
}

//****************************************************************************
// Timer A0 中断服务程序, A0是指CCR0
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
{
  P1OUT ^= BIT0;                            // MC430F11板上的D1 LED闪烁
}

//****************************************************************************
// Timer A3 中断服务程序, A3是指CCR1,CCR2,TAR
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A3(void)
{
 switch( TAIV )
 {
   case  2: P1OUT ^= BIT2;                   // CCR1 
            break;                           // MC430F11板上的D2 LED闪烁
   case  4: P1OUT ^= BIT3;                   // CCR2 
            break;                           // MC430F11板上的D3 LED闪烁
   case 10:                                  // TAR
            break;
 }
}
 

#i nclude <msp430x14x.h>

void main(void)
 {
  WDTCTL = WDTPW + WDTHOLD;         // 停止看门狗WDT
  P1DIR |= 0x01;                    // 设置P1.0口方向为输出。
  TACTL = TASSEL_2 + MC_2 + TAIE;   // 时钟源选择为SMCLK,选择计数模式,定时器中断开

 _BIS_SR(LPM0_bits + GIE);          //进入低功耗模式LPM0和开中断
 }

  // Timer_A3 中断向量(TAIV)处理
  #pragma vector=TIMERA1_VECTOR

__interrupt void Timer_A(void)
 {
  switch( TAIV )
  {
   case 2: break;                   //CCR1不使用
   case 4: break;                   //CCR2不使用
   case 10: P1OUT ^= 0x01;          //溢出
   break;
  }
 }

 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -