定时器,让流水灯以1S时间闪烁

2019-03-24 10:31发布


void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;           //关闭看门狗

    P2DIR |= 0xFF;
     P2OUT=0x00;
    //P2配置为输出
   
     TA0CCR0 = 50000;                   //初值设置     
     TA0CTL =TASSEL_2 +MC_1;
     TA0CTL =TAIE;//TAIE:中断使能  
      _EINT();                            //打开全局中断
      LPM3;                               //进入低功耗模式                  
}为什么不行呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
fqh5455588
2019-03-24 21:30
本帖最后由 fqh5455588 于 2014-11-24 17:19 编辑

#include"in430.h" #include "msp430g2553.h"
static unsigned char temp = 0xaa;
unsigned int n=0;
void main( void )
{   WDTCTL = WDTPW + WDTHOLD;    // 关闭看门狗  
BCSCTL1=CALBC1_1MHZ;   
DCOCTL=CALDCO_1MHZ;
  P1DIR = 0xff;             //设定P1口为输出方式  
P1OUT = 0xff;           //给P1口赋初始值   
TA0CCTL0 = CCIE;     //打开中断 (Timer0_A3 Capture/Compare Control 0 )  
CCR0 = 50000;      //设定计数变量   
TA0CTL = TASSEL_2 + MC_1; //定时器选择时钟SMCLK,使用模式二连续计数方式   
  _EINT();       //开总中断  
while(1)  
{     LPM0;      }    //开启低功耗模式0,进入低功耗模式,等待中断唤醒  
  }
#pragma vector = TIMER0_A0_VECTOR
__interrupt void time1(void)
{   P1OUT=temp;
  n++;   
if(n==20)  
{     temp = ~temp;         //取反   
  P1OUT = temp;       //P1口赋值     
n=n%20;  
}
}

一周热门 更多>

相关问题

    相关文章