微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > PM3休眠的唤醒问题

PM3休眠的唤醒问题

时间:10-02 整理:3721RD 点击:

系统进入PM3模式的休眠后,通过Disassembly中发现指针进入到了FFFFFF,然后在Debug log窗口中出现了

Mon Aug 18, 2014 17:31:21: The stack pointer for stack 'XdataStack' (currently XData:0xFFFF) is outside the stack range (XData:0x0001 to XData:0x0281)

 这样的警告。

我的休眠还输是自己写的:

void DeepSleepMode(void)
{
uint8 i;
SLEEPCMD|=0X03; 
for(i=0;i<4;i++);
PCON=0X01; 
}

然后在定时0.5s扫描一下P1_6引脚是否置高,若是则进入PM3,程序为:

if ( events & SBP_PERIODIC_EVT )
{
    if ( SBP_PERIODIC_EVT_PERIOD )// Restart timer
   {
       osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD );
  }
  if(DEFAULT_Sleep_Check)
  {
    if(P1_6 == 1)
    {
        DeepSleepMode();
    }
 }
  return (events ^ SBP_PERIODIC_EVT);
}

最后在通过按键中断来唤醒PM3,按键中放置了:

PCON = 0X00;

SLEEPCMD |= 0;

请问各位大神:问题究竟出在哪儿呢?为什么换不醒PM3呢?求指导

PM3只能由外部中断或者Reset唤醒

按键的中断使用的不是外部中断吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top