点LED灯,我晕了+_+

2019-03-24 14:32发布

#include  <msp430x16x.h>

/****************主函数****************/
void main(void)
{  
    /*下面六行程序关闭所有的IO口*/
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;
  
    WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
   
    P6DIR |= BIT2;P6OUT |= BIT2;    //关闭电平转换
    CCTL0 = CCIE;                   //使能CCR0中断
    CCR0 = 2047;                    //设定周期0.5S               
    TACTL = TASSEL_1 + ID_3 + MC_1; //定时器A的时钟源选择ACLK,增计数模式
    P2DIR = 0xff;                   //设置P2口方向为输出
    P2OUT = 0xff;

    _EINT();                        //使能全局中断
    LPM3;                           //CPU进入LPM3模式
}

/*******************************************
函数名称:Timer_A
功    能:定时器A的中断服务函数
参    数:无
返回值  :无
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{  
    P2OUT ^= 0xff;                  //P2口输出取反
}
这是KB-1B上的例程,为什么在把LPM3屏蔽之后LED灯就不亮了呢

[ 本帖最后由 浅影月居 于 2012-4-23 22:22 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
cat3902982
2019-03-24 21:46
< 你把LPM3注释掉的话,你也要加个WHILE(1)啊;不然程序都走完了,你再中断的话,CPU也不会做什么事啊!

一周热门 更多>

相关问题

    相关文章