| 无线电爱好网 | 加入桌面 | 手机版 | 无图版
高级搜索 标王直达
排名推广
排名推广
发布信息
发布信息
会员中心
会员中心
 
当前位置: 首页 » 资讯 » 电源/新能源 » 正文

基于WinCE驱动程序的电源管理研究与设计

放大字体  缩小字体 发布日期:2013-06-28  浏览次数:416

 

图3 系统电源状态的转换

 

图3 系统电源状态的转换

3 背光驱动的电源管理

3.1 LCD 背光的电源管理策略

背光驱动启动一个监视工作线程, 不停的等待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

供电电源发生变化, 例如插入了电源, 监视线程会获得了这个事件。如果使用电源, 可以使用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

等待用户输入事件,如果用户有按键动作,则无论电源插上与否背光驱动都打开,否则,等待超时事件的发生, 将背光驱动关闭。

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) ;

}

注册表的超时值决定了背光灯的工作时间。在注册表中进行如下超时值的设置:

[ H KEY_CURRE NT_USER/ Cont rolPanel / Backlight ]

"AC Timeout "= dword: 3c / / 十六进制, 十进制为60

"Bat t eryT imeout "= dw ord: 1e / / 十六进制, 十进制为30

 
转播到腾讯微博
 
[ 资讯搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]

 
0条 [查看全部]  相关评论

 
推荐图文
推荐资讯
点击排行