完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ti大神:
小弟在测试PM2低功耗模式下,预想的是 每5s中,向外发送一次广播信息。广播信息后,保持1s的监听时间,然后再转入允许休眠的时间。周而复始的进行,使其能够降低功耗。 实现思路:创建两个事件,一个是广播发送事件,另一个是允许进入低功耗事件。在上电入网或者建立网络后,触发广播任务。广播发送事件的周期为持续工作事件,记为T1,允许进入低功耗的周期的事件为休眠时间,记为T2,那么,整个工作周期就为T1+T2。 代码流程如下: if ( event & START_EVT ) [ //发送广播信息 ... osal_pwrmgr_device( PWRMGR_ALWAYS_ON ); osal_pwrmgr_task_state(sapi_TaskID,PWRMGR_HOLD); //确保在接下来的时间内,接收机是打开的 #define MAC_RECEIVE_ON 1 #define MAC_RECEIVE_OFF 0 uint8 value = MAC_RECEIVE_ON; MAC_MlmeSetReq(MAC_RX_ON_WHEN_IDLE,&value); osal_start_timerEx(sapi_TaskID,SLEEP_EVT,1000); //等待1s,在这1s内,接收机始终处于开启状态。 return event ^ START_EVT; ] if ( event & SLEEP_EVT ) [ osal_pwrmgr_device( PWRMGR_BATTERY ); osal_pwrmgr_task_state(sapi_TaskID,PWRMGR_CONSERVE); osal_start_timerEx( sapi_TaskID,START_EVT,4000); //允许进入休眠,4s后再次发送广播周期 return event ^ SLEEP_EVT; ] 以下的修改,在halSleep函数中。 1 在进入MAC层休眠之前,需要手动关闭MAC层接收机,相关代码为 uint8 value = MAC_RECEIVE_OFF; MAC_MlmeSetReq(MAC_RX_ON_WHEN_IDLE,&value); 2.. 在针对路由器的低功耗中,终端的MAC休眠模式不能使用,应该改为使用MAC_PwrOffReq(MAC_PWR_SLEEP_LITE),轻度休眠模式。 只要经过上述这两点的修改,路由器模式下,也是可以进入低功耗的。至于在广播数据后,等待接收数据的时间与整个广播周期的比例,则取决于你应用场景所需要的休眠占空比。 如上面的框架代码:发送广播数据后1s内,保持接收机唤醒状态。1s后,允许当前任务进入低功耗,之后OSAL完成自己的事件处理,随机进入低功耗,在4s的时间内,会发生几次进入低功耗的情况,这是正常的。4s后,设备再次发送广播信息,周而复始重复上述操作。 采用上述的做法,可以使路由器节省一定的功耗(协调器在建立网络后,也是可以这样来实现的)。 上述是小弟在基于OSAL低功耗实现方面的摸索出来的一点心得体会,贡献出来,请大家点评,共同提高。 |
|
相关推荐
1 个讨论
|
|
那中断 进入PM2 模式需要怎么配置
1.开启POWER_SAVING 预编译 2.f8wConfig_cfg 中的RFD_RCVC_ALWAYS_ON=FALSE 3.f8wConfig_cfg中四个DPoll_RATE设为0 4.ZGlobals.c中三个PollRate设为0 5.Onboard.c文件中,OnboardKeyIntEnable=HAL_KEY_INTERUPT_ENABLE 6.hal_drivers.c中if(!Hal_KeyIntEnable)中的语句关掉 7.osal_pwrmgr_init(void)中pwrmgr_attribute.pwrmgr_device=PWRMGR_BATTERY 我按照这个来配置 我在连上网络的地方 调用Halsleep(4000); 然后在睡眠中断里 改变LED1 LED2 的状态 运行的时候 却是没5S LED 状态更换一次 5s是因为周期点播 周期是5s 是不是我哪里配置错了 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1888 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3645 浏览 4 评论
5031 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1734 浏览 1 评论
9368 浏览 8 评论
CC3100BOOST使用CC3200lunchXL进行烧录
669浏览 2评论
714浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
675浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1197浏览 1评论
1771浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 02:48 , Processed in 0.679863 second(s), Total 45, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号