小弟在开发 zigbee单火线设备 ,要实时控制功耗,功耗太大灯闪烁
代码如下
case ZDO_STATE_CHANGE:
if ((devStates_t)(MSGpkt->hdr.status)== DEV_END_DEVICE)
{
osal_stop_timerEx(ztMyMain_Process_TaskID, EVT_NETWORK_HANDLE);
Ztcount_of_scanner_failure = 0;
flag_of_first_join_after_reset=0;
}
else
{
ZDApp_StopJoiningCycle();
osal_pwrmgr_device( PWRMGR_BATTERY );
osal_start_timerEx(ztMyMain_Process_TaskID, EVT_NETWORK_HANDLE, ztCharge_Time_for_ready_join);
}
然后定义了个事件
void EVT_NETWORK_HANDLE_CB(void)
{
ZDApp_StartJoiningCycle();
}
在网络很闲暇的时候 一断网 系统立即停止加网络,效果很好
但是当网络很繁忙的时候 end device 却有概率不能加入网络 ,又不睡眠 导致功耗一直维持在30ma 然后系统因为耗电太大 灯不断闪烁,请问有什么解决办法