新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于WinCE驅(qū)動程序的電源管理研究與設(shè)計

基于WinCE驅(qū)動程序的電源管理研究與設(shè)計

作者: 時間:2013-06-10 來源:網(wǎng)絡(luò) 收藏

圖3 系統(tǒng)電源狀態(tài)的轉(zhuǎn)換

圖3 系統(tǒng)電源狀態(tài)的轉(zhuǎn)換

3 背光驅(qū)動的電源管理

3.1 LCD 背光的電源管理策略

背光驅(qū)動啟動一個監(jiān)視工作線程, 不停的等待3 個事件:

3.1.1 BackLightChang eEv ent

等待注冊表中時鐘的更新, 在注冊表的時鐘更新之后總是將背光燈打開。

dw Resul t = WaitForMul tipleObject s( NUM _EVENT S, g_evtSignal[ 0] , FALSE, dw Tim eout ) ;

if ( WAIT _OBJECT_0 = = dw Res ult ) {

BL_ReadRegist ry( g_BLInf o) ;

BL_On( TRUE) ;

}

3.1.2 Pow erChangedEv ent

供電電源發(fā)生變化, 例如插入了電源, 監(jiān)視線程會獲得了這個事件。如果使用電源, 可以使用m _ dw ACTimeout 值作為超時值, 否則, 使用m _ dw Batter yT imeout 值作為超時值。

if ( dw Result = = WAIT_OBJECT _0+ BL_POWERE VT) {

if ( IsACOn( ) ) {

dw Timeout = g_BLInf o. m_dw ACTim eout * 1000;

}

else {

dw Timeout = g_BLInf o. m_dw Bat t eryT imeout * 1000;

}

}

3.1.3 Pow erM anag er/ ActivityTimer / UserActivity

等待用戶輸入事件,如果用戶有按鍵動作,則無論電源插上與否背光驅(qū)動都打開,否則,等待超時事件的發(fā)生, 將背光驅(qū)動關(guān)閉。

if ( dw Result = = WAIT_OBJECT _0+ 1 | | dwResult = = WAIT _OBJECT _0 + BL_BUT TONEVT )

{

if ( IsACOn( ) ) {

if ( g_BLIn fo. m_bAC Au t o) {

BL_On( TRUE) ; }

}

else {

if ( g_BLIn fo. m_bBat t eryAut o) {

BL_On( TRUE) ; }

}

}

else if ( dw Result = = WAIT_T IMEOUT ) {

BL_On( FALSE) ;

}

注冊表的超時值決定了背光燈的工作時間。在注冊表中進行如下超時值的設(shè)置:

[ H KEY_CURRE NT_USER/ Cont rolPanel / Backlight ]

AC Timeout = dword: 3c / / 十六進制, 十進制為60

Bat t eryT imeout = dw ord: 1e / / 十六進制, 十進制為30

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 驅(qū)動器 控制 嵌入式

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉