加入网络和休眠问题
我现在想实现一个功能,如果终端上电周围没有网络可以加入,就进入休眠,下次上电再继续加入网络,如果没有网络还是继续休眠。
可以实现的,程序里设定一个限时,此时间段内未搜索到可用网络就进入休眠
能具体给我说说在什么地方加那个限时吗。
/*********************************************************************
* @fn ZDApp_StartJoiningCycle()
*
* @brief Starts the joining cycle of a device. This will only
* continue an already started (or stopped) joining cycle.
*
* @param none
*
* @return TRUE if joining stopped, FALSE if joining or rejoining
*/
uint8 ZDApp_StartJoiningCycle( void )
{
if ( devState == DEV_INIT || devState == DEV_NWK_DISC )
{
continueJoining = TRUE;
ZDApp_NetworkInit( 0 );
return ( TRUE );
}
else
return ( FALSE );
}
/*********************************************************************
* @fn ZDApp_StopJoiningCycle()
*
* @brief Stops the joining or rejoining process of a device.
*
* @param none
*
* @return TRUE if joining stopped, FALSE if joining or rejoining
*/
uint8 ZDApp_StopJoiningCycle( void )
{
if ( devState == DEV_INIT || devState == DEV_NWK_DISC || devState == DEV_NWK_BACKOFF )
{
continueJoining = FALSE;
return ( TRUE );
}
else
return ( FALSE );
}
这个两个函数我已经用过了,确实是没有搜索网络了,但是终端电流还是有10mA左右,没有进入休眠。还有我协议栈用的是2.5那个,会不会是协议栈的问题啊?
10MA是外设耗电.检查最小系统. 比如拔掉核心板,看外设耗电量
这个是我做的一个核心板,如果能正常入网电流就在10uA左右(我还有一个芯片外设是低功耗)。