1.zigbee的睡眠定时器是一个24位的定时器,最大定时时间是510s,计算公式:Sleep timer maximum duration = 0xFFFF7F / 32768 Hz = 511.996 seconds
2.睡眠定时器的设置:
默认使用osal_start_timerEx来设置睡眠定时时间,当定时的时间超过最大定时时间则以最大定时时间来唤醒,否则按时间设置的时间来唤醒
uint8 osal_start_timerEx( uint8 taskID, uint16 event_id, uint32 timeout_value )
源码在:hal_sleep.c文件的halSleep()函数里。
do
{
/* enable sleep timer interrupt */
if(timeout != 0)
{
if (timeout > HAL_SLEEP_MS_TO_320US( MAX_SLEEP_TIME ))
{
timeout -= HAL_SLEEP_MS_TO_320US( MAX_SLEEP_TIME );
halSleepSetTimer(HAL_SLEEP_MS_TO_320US( MAX_SLEEP