zigbee 协议栈睡眠用法[通俗易懂]

zigbee 协议栈睡眠用法[通俗易懂]大家都知道2430有3种睡眠模式,pm2模式比较省功耗而且可以被定时唤醒;pm3模式最省电但是只能被外部中断唤醒。开启睡眠功能很简单:首先确认/TexasInstruments/ZStack-1.4.3-1.2.1/Projects/zstack/Tools/CC2430DB目录下的f8wConfig.cfg文件中DRFD_RCVC_ALWAYS_ON定义为FALSE;然后在IAR的

大家好,又见面了,我是你们的朋友全栈君。

大家都知道2430有3种睡眠模式,pm2模式比较省功耗而且可以被定时唤醒;pm3模式最省电但是只能被外部中断唤醒。开启睡眠功能很简单:

首先确认/Texas Instruments/ZStack-1.4.3-1.2.1/Projects/zstack/Tools/CC2430DB目录下的f8wConfig.cfg文件中DRFD_RCVC_ALWAYS_ON定义为FALSE;

然后在IAR的Options->C/C++Compiler->Preprocessor->Defined symbols中添加“POWER_SAVING”;

最后在Options->Linker->Linker command line里面把f8w2430.xcl改为f8w2430pm.xcl。

在定义“POWER_SAVING”宏以后OSAL.c中的osal_start_system()函数里面就会调用 osal_pwrmgr_powerconserve()函数。osal_pwrmgr_powerconserve()函数把获取os层timer的下 一次的到时时间作为参数,调用hal_sleep()进入pm2睡眠模式,如果当前没有任务那么将进入pm3。所以说一旦启用省电模式,系统将根据当前的 任务自动进入睡眠,睡眠前设置sleeptimer,醒来的时间刚好等于下次任务到来的时间,当完成任务后再次进入睡眠。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143052.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号