休眠模式的推出问题!

2019-03-24 15:09发布

小弟在做一个项目,按键长按5s以后,我给LEDOnOff一个SWITCHOFF的值,SWITCHOFF是定义的枚举类型,然后执行下面的程序进入休眠模式,可是再通过按键无法唤醒系统,请问下是为什么呢?(最下面是port的中断程序) void Task_LEDonoff(void)
{
  switch(LEDOnOff)
  {
  default: break;
  case HOLD:
    break;
  case SWITCHON:
    P1SEL |= 0x0c;
    P1DIR |= 0x1c;
    P1OUT |= 0x10;
    LEDOnOff = HOLD;
    break;
  case SWITCHOFF:
    P1SEL &=~ 0x0c;
    P1DIR &=~ 0x1c;
    P1OUT &=~ 0x10;
    _BIS_SR(LPM1_bits);
    break;
  }
}  #pragma vector=PORT1_VECTOR
__interrupt void Port1(void)
{
  _BIC_SR_IRQ(LPM1_bits);
 
  Task_Delay(10);
  if(!(0x01&P1IN))                  // Debouncing
  {
    if((ToggleValue != CHANGEMODE))
    {
      TBCTL |= TBCLR;
      TBCTL = TBSSEL0 + MC0;        // ACLK=32768Hz,
      TBCCTL0 = CCIE;
      TBCCR0 = 3277;                // Fixed time = 0.1s
      SwitchAction = ACTION;
    }
  }
 
  P1IFG &=~ 0x01;
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
鸵鸟蝈蝈
2019-03-25 11:15
只要有中断,就能唤醒CPU。
一般是在While(1)中设置CPU的LPM模式

一周热门 更多>

相关问题

    相关文章