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

终端节点低功耗后如何用看门狗

在终端节点低功耗后,看门狗还能工作 ,这时候功耗是如何保证的嘞?

这一点没弄明白工zstack作机制。还望大神们指点。

从论坛上借鉴的方式,我是在这里喂狗的:

void osal_start_system( void )
{
#if !defined ( ZBIT ) && !defined ( UBIT )
for(;;) // Forever Loop
#endif
{
osal_run_system();
#ifdef WDT_IN_PM1
WD_KICK();
#endif
}
}

谢谢

ka zhang:

回复 Yue TANG:

你好 TY:

1.编译选项使能了POWER_SAVING, 没有显式调用halSleep就不会进入PM2 吗?

2.但是我显式调用halSleep(5000)后,看门狗还是可以正常工作(板子没有复位判断),这个调用后应该是进入PM2吧。

关系还是没弄明白,谢谢解答。

Yue TANG:

回复 ka zhang:

(1)使能POWER_SAVING以后,协议栈会根据一系列判断自动进入PM2或或PM3模式。不要显式调用halsleep。你可以debug,代码跟踪看是什么原因,系统没有进入低功耗。

(2)进入低功耗后,看门狗只是不计数,你从低功耗唤醒后,看门狗由于晶振恢复,还是可以继续计数的。

ka zhang:

回复 Yue TANG:

你好 TY

请问在代码跟踪中如何确认休眠模式进入了PM2或者PM3?

由于没有设备检测具体电流,还请指导个其他方式可以可靠的获知当前cc2530的运行状态。

谢谢你解答,低功耗后看门狗也停就非常好的解决了我的疑问。

ka zhang:

回复 Yue TANG:

你好 TY:

在我使能看门狗调试低功耗时候,遇到了栈的问题,论坛上有其他人提到过类似的问题但是貌似没有找到合适的解法(也许只是我没找到 J):

The stack pointer for stack 'IdataStack' (currently IData:0x07) is outside the stack range 

这个问题是在我使能看门狗后,连接调试器随便走一个断点后,会产生这个错误然后片子复位,不调试时候或者没有走到断点时候不出现该问题。去掉看门狗编译选项后,调试程序又和以前一样了,该单步单步,该断点断点,正常运行。

需要增加栈大小吗?是在general option->stack配置后还有其他相应要修改的吗?

在cc2530上设置栈可以在什么范围,有什么约束,没有整体宏观的把握我不能乱动设置,目前栈使用的是默认值。

IDATA:0xC0

PDATA:0x80

XDATA:0x300

再次感谢。

ka zhang:

回复 Yue TANG:

啊。 一语中的!!!谢谢。

不过报的错为啥是stack的错嘞, 弄得我百思不得解,辗转一晚上睡不好啊。哈哈

正常做出来用的时候,推荐使能看门狗吗?

另外,如果真需要增加栈大小的话,还请指导下上一条里的问题。

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 终端节点低功耗后如何用看门狗
分享到: 更多 (0)