阅读:8568回复:29
电池驱动的代码
前一段时间完成电池驱动,下面是一点心得,贴出来供大家参考:
1. 将样本代码拷到BSP的DRIVERS目录下。 2. 修改DRIVERS目录下dirs文件,加上Battdrvr目录。 3. 修改FILES目录下的platform.reg文件,增加如下 IF BSP_NOBATTERY ! ; HIVE BOOT SECTION [HKEY_LOCAL_MACHINE\System\Events] "SYSTEM/BatteryAPIsReady"="Battery Interface APIs" ; END HIVE BOOT SECTION ; These registry entries load the battery driver. The IClass value must match ; the BATTERY_DRIVER_CLASS definition in battery.h -- this is how the system ; knows which device is the battery driver. Note that we are using ; DEVFLAGS_NAKEDENTRIES with this driver. This tells the device manager ; to instantiate the device with the prefix named in the registry but to look ; for DLL entry points without the prefix. For example, it will look for Init ; instead of BAT_Init. This allows the prefix to be changed in the registry (if ; desired) without editing the driver code. [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Battery] "Prefix"="BAT" "Dll"="battdrvr.dll" "Flags"=dword:8 ; DEVFLAGS_NAKEDENTRIES "Order"=dword:0 "IClass"="{DD176277-CD34-4980-91EE-67DBEF3D8913}" ENDIF BSP_NOBATTERY ! 4. 修改FILE目录下的platform.dat文件,增加如下: battdrvr.dll $(_FLATRELEASEDIR)\battdrvr.dll NK SH 5.修改battif.c文件,在BatteryPDDGetStatus函数中增加获取电池状态的相关代码。 |
|
|
沙发#
发布于:2010-04-11 13:05
楼主有无 仅用电池检查 是否正常???? 我测下来,无法正常显示 电池电量及 剩余百分比 !!! |
|
板凳#
发布于:2010-04-09 17:21
本人 参考了 本站wince_lover相关文档受益非浅,但还有如下问题无法解决 在 电池充满电后 系统显示电池 1) 剩余百分比 =0 (BatteryLifePercent=0) 2) 当前剩余电量 =0 (BatteryLifeTime=0) 3) 电池状态 =极为不足 (BatteryFlag =4 ) (控制面板中电源信息和 用GetSystemPowerStatusEx读出的 相符合) 4) 虽仅使用电池工作,但右下状态拦 图标还是 交流充电图标 折腾了几天,不得要领 是否在 填写 电池初始化信息处 要注意些什么? 请高手 指点迷津,不甚感激 !!! |
|
地板#
发布于:2010-02-07 11:36
感谢中
|
|
地下室#
发布于:2009-07-16 17:59
LOVER,好人
鉴定完毕,嘎嘎 |
|
5楼#
发布于:2009-07-16 11:04
请问楼主这个电路具体是怎么连接的,使用的是什么芯片管理电池
|
|
6楼#
发布于:2008-07-18 17:22
wince_lover兄,你回我贴的时候应该告诉我你发过怎么一个贴,我就不用搞得那么幸苦了,这不拿来就可以用嘛,非常感谢
|
|
|
7楼#
发布于:2008-03-10 17:05
用户被禁言,该主题自动屏蔽! |
|
8楼#
发布于:2007-10-05 16:02
现在变成 不管模式 不管几分钟,都不会休眠..码的,气炸了
|
|
9楼#
发布于:2007-10-05 14:31
只要是在电池模式,固定5分钟休眠(不管设几分钟)
外部电源时,不管设几分钟,都不会休眠... 码的..气死了 |
|
10楼#
发布于:2007-10-04 22:19
WINCE_LOVER请教…
虽然电池状态和外部电源相关讯息都可正常显示了 可是很伤脑筋的,不管注册表怎么设,WINCE开机后电源管理怎么设 都固定5分钟后自动休眠了,这问题困扰很久了,有没有啥方向可查? |
|
11楼#
发布于:2007-09-22 13:58
好~
|
|
12楼#
发布于:2007-09-05 16:56
好贴...顶一个..
|
|
13楼#
发布于:2007-09-05 16:45
好,谢谢。
现在问题解决了。我是在PB里面编的驱动,但其应该是EVC的内核。而EVC中只支持UNICODE编码,不支持ANSI字符串,这是它与VC不同的地方,必须将BATTERY_TOUCH_MUTEX这个字符串 改为_T ("BATTERY_TOUCH_MUTEX ")才能在编译的时候顺利通过! |
|
14楼#
发布于:2007-09-05 12:02
第三个参数就是一个UNICODE字符串
|
|
15楼#
发布于:2007-09-05 11:32
谢谢楼上,上面那个问题已经解决了,但又有一个新的问题。
我在createmutex()时,第三个参数,即进程的名字,是如何命名的,我改变了名称,结果系统说是一个未声明的变量。我查了一下PB的帮助手册,上面说这是一个指针变量,指向进程的名称: Long pointer to a null-terminated string specifying the name of the mutex object. 我的名称为何不识别呢? |
|
16楼#
发布于:2007-09-05 09:26
我没有看过2410的代码,不过有没有无关紧要。只要你在驱动退出的时候释放互斥量就可以了
|
|
17楼#
发布于:2007-09-04 22:28
楼主你好,我的是2410,wince4.2的系统,我按照你的方法修改触摸屏的驱动,但在2410的DRIVERS下面的触摸屏驱动里并没有找到这个函数:PddpTouchPanelDeallocateVm,能告知原因吗,还有这个函数起到什么作用啊
|
|
18楼#
发布于:2007-08-17 15:50
兄弟 真是太感谢了啊!!
|
|
19楼#
发布于:2007-04-24 14:46
搞定了,原来是RETAILMSG(1, (TEXT("Before ADC sample\r\n")))以及RETAILMSG(1, (
TEXT("after ADC sample\r\n"))) ,这两句话在作怪,我把他们注释掉既没问题了。实在是,感谢楼主的帮助了。 |
|
上一页
下一页