ZigBee电源管理问题-低功耗
时间:10-02
整理:3721RD
点击:
对于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时间做此次的休眠时间,时间到了会自动唤醒,唤醒以后然后处理该事件,处理完以后又选择下一次要发生的最小时间进行休眠。