wince中的背光灯控制

来源:互联网 发布:网站统计系统源码 编辑:程序博客网 时间:2024/04/27 22:13

要控制背光灯就必须知道相关设置,以下是wince中背光灯的设置。在BL_ReadRegistry函数中被读取。

  1. [HKEY_CURRENT_USER/ControlPanel/BackLight]
  2.    "ACTimeout"=dword:0000012c
  3.    "UseExt"=dword:00000001
  4.    "UseBattery"=dword:00000001
  5.    "BatteryTimeout"=dword:0000003c

驱动backlite就是背光控制驱动,但是这是一只不完整的驱动,需要根据你自己的平台写代码控制,不同的电路控制方式不一样,而且还跟LCD有关系。那么首先请先完成你自己平台的控制函数void BackLightCtrl(BOOL bLight)。下面是我自己的函数。

 

  1. void BackLightCtrl(BOOL bLight)
  2. {
  3.     volatile IOPreg *s2410IOP ;
  4.     s2410IOP = (IOPreg *)IOP_BASE;
  5.     s2410IOP->rGPGCON &= ~(3 << 8);
  6.     s2410IOP->rGPGCON |=  (1 << 8);
  7.     if (bLight)
  8.     {        
  9.         s2410IOP->rGPGDAT |=  (1 << 4); 
  10.         RETAILMSG(1, (TEXT("turn on!/r/n")));
  11.     }
  12.     else
  13.     {
  14.         s2410IOP->rGPGDAT &=  ~(1 << 4); 
  15.         RETAILMSG(1, (TEXT("turn off!/r/n")));
  16.     }
  17.     
  18. }

然后在BL_MonitorThread中根据不同事件控制背光灯打开跟关闭,如果你的LCD支持调节亮度的,那么可类似处理。另外为了让操作触摸屏时能自动恢复LCD,那么还需要在触摸屏驱动中添加“UserInputEvent”事件,并在按下或者抬起的动作set一下这个事件。这样就能跟背光驱动关联起来。键盘驱动类似。

 

另外在platform.reg中添加

  1. [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/BackLite]
  2.     "Index"=dword:0
  3.     "Prefix"="BAK"
  4.     "Dll"="backlite.dll"
  5.     "Order"=dword:29

在platform.bib中添加

  1. backlite.dll    $(_FLATRELEASEDIR)/backlite.dll            NK    SH

最后提醒一下,如果drivers目录里面的“Copy of dirs”和“dirs”两个文件没有驱动信息需要自己添加,主要是让PB能对其编译并copy生成的文件到 $(_FLATRELEASEDIR)目录下,如果不添加就自己手动用cmd编译,然后copy过去,最后使用make image生成系统。

原创粉丝点击