[求助] 只开全局中断不进入休眠

luoddy520   2011-9-25 08:32 楼主
#include  

void main(void)
{
  WDTCTL = WDT_MDLY_32;                     // Set to ~32ms Interval Timer
  IE1 |= WDTIE;                             // Enable WDT interrupt
  P6DIR |= 0x04;                            // Set P6.2 to output direction

  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt}

// Watchdog Timer interrupt service routine
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
  P6OUT ^= 0x04;                            // Toggle P6.2 using exclusive-OR
}

以上例程,现在只想开全局中断,不想进入LPM0,程序要如何改动呢。
直接改成_EINT(),不管用的。

回复评论 (4)

_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt}

直接把这句屏蔽掉不可以吗?
点赞  2011-9-25 09:45
把LPM0_bits 去掉
点赞  2011-9-25 12:55

还得自己试验啊。

_EINT();是可以用的,只不过要在后面加一句while(1)

要不然程序就直接结束了。

点赞  2011-9-26 08:16

回复 4楼 luoddy520 的帖子

整出来就OK了!
点赞  2011-9-26 08:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复