This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ZigBee电源管理问题--低功耗

对于ZigBee官方的例程所有设备默认是使用PWRMGR_ALWAYS_ON,当我们要求终端设备进入PM2时,可定时唤醒。那么该设置那里呢?根据百度说法:是在预编译选项中使能POWER_SAVING ,然后调用osal_pwrmgr_device(PWRMGR_BATTERY);和osal_pwrmgr_task_state(xxx_TaskID,PWRMGR_CONSERVE);

问题来了:1、osal_pwrmgr_device(PWRMGR_BATTERY);是放在那里调用?

2、osal_pwrmgr_task_state(xxx_TaskID,PWRMGR_CONSERVE);同样也是放在那里调用?

3、怎么唤醒,是系统自动唤醒,还是调用定时唤醒函数?

  • 1和2, 不需要你自己去放的,你只要在程序里面定义了POWER-SAVING宏定义的话,程序就自动把上面的函数加到需要的位置。

    3,系统的休眠是根据调度的任务时间来休眠的,

    每次系统都选择最小的timer event时间做此次的休眠时间,时间到了会自动唤醒,唤醒以后然后处理该事件,处理完以后又选择下一次要发生的最小时间进行休眠。