CC2530低功耗笔记-备忘

废话就不说了,直接上代码和步骤。

(1) go to project->Oprions and find the C/C++ Compiler->Preprocessor ,在Defined symbols:对话框中输入如下设置:

ZDO_ENDDEVICE
REFLECTOR
POWER_SAVING

第一步完成。

(2) 修改f8wConfig.cfg文件如下,

-DRFD_RCVC_ALWAYS_ON=FALSE//关闭接收器,设备将无法接收数据,能最大程度降低功耗

-DPOLL_RATE=0

-DQUEUED_POLL_RATE=0

-DRESPONSE_POLL_RATE=0

-DREJOIN_POLL_RATE=440

第二步完成。

(3) 修改OnBoard文件按键的触发方式。

HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE, OnBoard_KeyCallback);

第三步完成。

完成以上几个步骤后,将程序下载在板子上,在线调试,看下程序能跑进void osal_pwrmgr_powerconserve( void )函数中不,如果能运行至next = osal_next_timeout();这一句,那证明软件已经能进入低功耗方式了,但是有些人会发现,功耗还在ma级别以上,没达到手册上说的ua级别,那我按我遇到的情况来简单解释一下,因为你在最后一次调用osal_start_timerEx();时使用的时间成了协议栈定时睡眠的时间,这个时间越长,那芯片睡眠的时间就越久,功耗也就越低。如果不知道自己最后一次调用osal_start_timerEx()是哪个的,也不知道这个睡眠时间是多少的话,我可以介绍一个简单的方法,那就是我们认为手动的去设置这个睡眠时间,那如何设置呢?

点击打开OSAL_PwrMgr文件,找到void osal_pwrmgr_powerconserve( void )函数的实现,next = osal_next_timeout();下面添加一句next = 2000;注意:这里的2000是我随便写的,这个值就是我们芯片睡眠时间,越长睡眠就越久,功耗也就越低,这个值最大可以设置到65535。这时你再测量下他的电流,就会发现惊喜了。

打完收工。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值