我的嵌入式开发板与LCD屏是通过VGA接口连接的,开发板安装的是wince5.0系统,我在wince5.0里设定了系统闲置一分钟就关闭lcd背光灯,但是没效果。请问谁知道在wince下如何实现关闭LCD背光灯?其原理和途径是什么?
背光的驱动是需要你自己根据你们的硬件做一个驱动来控制的,wince系统本身并没有也不可能提供这样的控制接口给你。
据说可以通过更改电源管理驱动来实现,但不知道具体怎么改。哪位大侠知道的话指点一二啊!
你要开发LCD 背光驱动的。要提供接口给PM的。。。参考其他驱动代码吧。
这个问题问的有点太广而大之了,不好回答!
"据说可以通过更改电源管理驱动来实现,但不知道具体怎么改",既然这么相信“据说”,你应该找据说来回答你的问题。
你可以联系提供你os的人。
如果你自己裁减wince os,那就仔细研究一下驱动吧
我的os是自己裁剪啊,但小弟不才,没搞过驱动。不知如何是好啊!
找个例子看看吧
有疑问再来问。
没人手把手教你的。
研究一下硬件,LCD背光是用PWM来控制的,当占空比为0时背光就关闭了,如果LCD背光直接接在电源上,那就没有办法控制了
我的lcd背光是是直接接在电源上的。我在想可不可以通过关闭vga信号实现?谁知道wince下如何关闭vga信号呢?
可以通过BIOS关掉显示器,这个可以实现,不管你的板子的 BSP是否支持,问下,你用的是什么板子,很多板子BSP是不支持关背光的,其实关掉显示器效果差不多,用PWM的方法如出一哲,BSP不支持,什么都没用 。
#define IOCTL_HAL_SCREENOFF CTL_CODE(FILE_DEVICE_HAL, 0x1102, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_HAL_SCREENON CTL_CODE(FILE_DEVICE_HAL, 0x1103, METHOD_BUFFERED, FILE_ANY_ACCESS)
BOOL SetScreenPower(BOOL bPowerOn)
{
return KernelIoControl(bPowerOn ? IOCTL_HAL_SCREENON : IOCTL_HAL_SCREENOFF, NULL, 0, NULL, 0, NULL);
}
我用的板子是ep9315,Cirrus Logic的。dthxman,你的代码该写在何处?能否详细点?你说可以通过BIOS关掉显示器,具体怎么做?谢谢!
代码加到你程序里就可以,运行代码就可以关显示器,底层的实现在BIOS里,那个功能知道打开就可以。
用这两个API,
SetPowerRequirement,强制背光一直亮着,
ReleasePowerRequirement,关闭背光
SetPowerRequirement里面要用到驱动里面的背光设备名,
比如:
hPowerReq = SetPowerRequirement(TEXT("BKL1:"), D0, POWER_NAME, NULL, 0);
就是让背光灯常亮.
这个要用流驱动来控制吧..
查找平台驱动文件夹..