TI中文支持网
TI专业的中文技术问题搜集分享网站

进入低功耗后是不是同时时GIE置位,其程序如下,发现P1.0闪烁。

#include  <msp430x24x.h>

void main(void)

{

 WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

 P1DIR |= 0x01;                            // P1.0 output

 CCTL0 = CCIE;                      // CCR0 interrupt enabled

 CCR0 = 50000;

 TACTL = TASSEL_2 + MC_2;                  // SMCLK, contmode

 //_EINT();

 //_BIS_SR(LPM0_bits );             // Enter LPM0w/interrupt   + GIE

 LPM0;

}

// Timer A0 interrupt service routine

#pragma vector=TIMERA0_VECTOR

__interrupt void Timer_A (void)

{

 P1OUT ^= 0x01;                            // Toggle P1.0

 CCR0 += 50000;                            // Add Offset to CCR0

}

Young Hu:

进入中断后GIE会清零,建议您在IDE中查看一下GIE位的值到底是多少。按照您的程序,不能进入中断

xiaohui chen:

回复 Young Hu:

利用软件调试时,没有进入中断。但仿真时灯会发生闪烁。屏蔽低功耗时,灯不发生闪烁。

xiaohui chen:

回复 Young Hu:

利用软件调试时,没有进入中断。但仿真时灯会发生闪烁。屏蔽低功耗时,灯不发生闪烁。

xiaohui chen:

回复 Young Hu:

利用软件调试时,没有进入中断。但仿真时灯会发生闪烁。屏蔽低功耗时,灯不发生闪烁。

xiaohui chen:

回复 Young Hu:

利用软件调试时,没有进入中断。但仿真时灯会发生闪烁。屏蔽低功耗时,灯不发生闪烁。

Young Hu:

在IDE中查看一下GIE位的值到底是多少。

进入低功耗的语句到底用的哪句?

谢谢!

Peter_Zheng:

回复 Young Hu:

不开全局中断是不会进入中断。led不会闪烁

xiaohui chen:

回复 Young Hu:

                                加入_EINT();调试时GIE=1;灯闪烁;

               屏蔽_EINT();执行LPM3;调试时GIE不为0,但仿真却会出现灯闪烁;

               屏蔽_EINT();和LPM3;调试时GIE不为0,且灯不会闪烁;

               当屏蔽_EINT()及中断中P1OUT ^= 0x01时;  执行LPM3; 灯不闪烁。

               突然觉得是不是我仿真图的问题???

               用的是proteus仿真

                                                 谢谢

xiaohui chen:

回复 Peter_Zheng:

                    恩……….怎么说咧,我知道不开GIE位,不可屏蔽中断理应不会执行,在调试界面GIE也没置1,但在仿真图中

灯却闪烁了,可能是我仿真图有问题吧?!!!            目前是不知道哪里出了问题

                                                                谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 进入低功耗后是不是同时时GIE置位,其程序如下,发现P1.0闪烁。
分享到: 更多 (0)