This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ZigBee低功耗遇到的问题

低功耗原理我可不可以这样理解,在这个函数osal_pwrmgr_powerconserve()会检测Timer时间链表中next Timeout最小的值,这个最小值就是睡眠的最小单位,假设最小的Timeout为Nms,系统检测到没有事件需要处理时,CPU则进入休眠模式N个毫秒(前提定义POWER_SAVING),等休眠时间到了就会启动检测并处理处理Timer事件需要处理,这样就可以达到省电的目的。

 

nextTimeout = OSAL_TIMERS_MAX_TIMEOUT;

// 寻找Timer链表中最小的值

while ( srchTimer != NULL )     {      

         if (srchTimer->timeout < nextTimeout)       {        

        nextTimeout = srchTimer->timeout;      

         }      

        // Check next timer      

       srchTimer = srchTimer->next;    

 }

 

 

// 得到下一个最小时间

 next = osal_next_timeout();

// 处理器进入休眠(休眠时间为next)

OSAL_SET_CPU_INTO_SLEEP( next );

 再有就是 最大的睡眠时间是固定的510s  其实这也就够了。

#define MAX_SLEEP_TIME                   510000     ms       

 

 

 

现在遇到的问题是 系统可以进入睡眠模式PM2

但是逐步调试发现任务一(nwk_init( taskID++ );)中有个定时期,定时时间特别短,导致系统不断休眠与唤醒。并且这个任务还不开放 这该怎么做呢  。希望得到TI 高手给出建议。谢谢~

 

注:我用的版本是ZigBee2007 DZIGBEEPRO 版本(ZStack-CC2530-2.5.1a)