要使用電源管理,需要預(yù)編譯POWER_SAVING.doc_第1頁(yè)
要使用電源管理,需要預(yù)編譯POWER_SAVING.doc_第2頁(yè)
要使用電源管理,需要預(yù)編譯POWER_SAVING.doc_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

要使用電源管理,需要預(yù)編譯POWER_SAVING.預(yù)備知識(shí):#define PWRMGR_ALWAYS_ON 0 /協(xié)調(diào)器或者路由器不能休眠#define PWRMGR_BATTERY 1 /終端可以休眠#define PWRMGR_CONSERVE 0 /PWRMGR_CONSERVE任務(wù)處于省電狀態(tài)#define PWRMGR_HOLD 1 /PWRMGR_HOLD任務(wù)處于工作狀態(tài)typedef struct uint16 pwrmgr_task_state; /任務(wù)的電源管理狀態(tài),允許為bit0,不允許為bit1 uint16 pwrmgr_next_timeout; /下一次超時(shí)時(shí)間 uint16 accumulated_sleep_time; uint8 pwrmgr_device; /電源管理設(shè)備屬性,PWRMGR_ALWAYS_ON PWRMGR_BATTERY對(duì)應(yīng) pwrmgr_attribute_t;/電源管理結(jié)構(gòu)體定義了pwrmgr_attribute_t pwrmgr_attribute;1.osal_pwrmgr_init()/初始化電源管理系統(tǒng),默認(rèn)為PWRMGR_ALWAYS_ON 和pwrmgr_task_state=0(所有任務(wù)支持電源管理);2.osal_pwrmgr_device(uint8 )/設(shè)置電源管理設(shè)備屬性。為PWRMGR_ALWAYS_ON 或者PWRMGR_BATTERY3.osal_pwrmgr_task_state(uint8 task_id, uint8 state)/state為PWRMGR_CONSERVE或者PWRMGR_HOLD,設(shè)置任務(wù)允不允許電源管理。4.osal_pwrmgr_powerconserve()/判斷是否所有的任務(wù)都允許電源管理,查找出最低timeout的timeer返回timeout,timer表為空返回0,最后調(diào)用halSleep,進(jìn)入休眠狀態(tài)。1在【Zmain.c中】osal_start_system()-osal_pwrmgr_powerconserve()2可以使用osal_pwrmgr_task_state( uint8 task_id, uint8 state )來(lái)使某個(gè)任務(wù)支持或不支持電源管理3在ZDApp_event_loop()中 osal_pwrmgr_device( PWRMGR_ALWAYS_ON );/路由器不能使用電源管理在ZDApp_NetworkStartEvt()中 osal_pwrmgr_device( PWRMGR_ALWAYS_ON );/協(xié)調(diào)器一直有電在ZDApp_DeviceAuthEvt()中 #if defined ( POWER_SAVING ) osal_pwrmgr_device( PWRMGR_BATTERY );/end可以選擇性的電源管理 #endif在ZDApp_ProcessNetworkJoin()中ZDApp_ProcessNetworkJoin()中 #if defined ( POWER_SAVING ) osal_pwrmgr_device( PWRMGR_BATTERY ); #endifCC2530有3種睡眠模式:#define CC2530_PM0 0 /* PM0, Clock oscillators on, voltage regulator on */#define CC2530_PM1 1 /* PM1, 32.768 kHz oscillators on, voltage regulator on */#define CC2530_PM2 2 /* PM2, 32.768 kHz oscillators on, voltage regulator off */#define CC2530_PM3 3 /* PM3, All clock oscillators off, voltage regulator off */#define HAL_SLEEP_OFF CC2530_PM0 /#define HAL_SLEEP_TIMER CC2530_PM2/可通過(guò)定時(shí)器和外部中斷或者復(fù)位喚醒#define HAL_SLEEP_DEEP CC2530_PM3/外部中斷或者復(fù)位喚醒pm2模式比較省功耗而且可以被定時(shí)喚醒;pm3模式最省電但是只能被外部中斷喚醒要設(shè)置低功耗模式,先確認(rèn):1.f8wConfig.cfg文件中DRFD_RCVC_ALWAYS_ON定義為FALSE2.Options-C/C+Compiler-Defined symbols中添加預(yù)編譯“POWER_SAVING”;在Options-Linker-Linker command line里面把f8w2430.xcl改為f8w2430pm.xcl。重要函數(shù)void halSleep( uint16 osal_timeout )1.首先將osal_timeout轉(zhuǎn)成以320US為單位2.獲取下一次MAC定時(shí)器到期時(shí)間3. halPwrMg

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論