wince_lover
驱动中牛
驱动中牛
  • 注册日期2007-01-10
  • 最后登录2010-12-20
  • 粉丝0
  • 关注0
  • 积分1103分
  • 威望735点
  • 贡献值2点
  • 好评度279点
  • 原创分1分
  • 专家分0分
阅读:8309回复:29

电池驱动的代码

楼主#
更多 发布于:2007-04-11 22:01
  前一段时间完成电池驱动,下面是一点心得,贴出来供大家参考:
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函数中增加获取电池状态的相关代码。
附件名称/大小 下载次数 最后更新
batt.rar (18KB)  606 2007-04-11 22:01
100136017
驱动牛犊
驱动牛犊
  • 注册日期2010-04-05
  • 最后登录2011-01-14
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-04-11 13:05

楼主有无 仅用电池检查   是否正常????
我测下来,无法正常显示 电池电量及 剩余百分比 !!!
100136017
驱动牛犊
驱动牛犊
  • 注册日期2010-04-05
  • 最后登录2011-01-14
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-04-09 17:21

 本人 参考了 本站wince_lover相关文档受益非浅,但还有如下问题无法解决  
  
 在 电池充满电后 系统显示电池  
  
 1) 剩余百分比 =0       (BatteryLifePercent=0)
 2) 当前剩余电量 =0       (BatteryLifeTime=0)
 3) 电池状态 =极为不足   (BatteryFlag =4 )
 
  (控制面板中电源信息和 用GetSystemPowerStatusEx读出的 相符合)
  
 4) 虽仅使用电池工作,但右下状态拦  图标还是 交流充电图标
  
  折腾了几天,不得要领
  是否在 填写 电池初始化信息处 要注意些什么?
  请高手 指点迷津,不甚感激  !!!
  
weixp
驱动牛犊
驱动牛犊
  • 注册日期2003-10-31
  • 最后登录2010-02-07
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望60点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-02-07 11:36
感谢中
dding832
驱动牛犊
驱动牛犊
  • 注册日期2007-11-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望158点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-07-16 17:59
LOVER,好人
鉴定完毕,嘎嘎
sz19880412
驱动牛犊
驱动牛犊
  • 注册日期2009-07-13
  • 最后登录2009-09-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-07-16 11:04
请问楼主这个电路具体是怎么连接的,使用的是什么芯片管理电池
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-07-18 17:22
wince_lover兄,你回我贴的时候应该告诉我你发过怎么一个贴,我就不用搞得那么幸苦了,这不拿来就可以用嘛,非常感谢
WINCE/EVC/VS2005群:18219722
tracera
禁止发言
禁止发言
  • 注册日期2006-01-09
  • 最后登录2018-09-25
  • 粉丝8
  • 关注0
  • 积分-5788分
  • 威望135321点
  • 贡献值0点
  • 好评度625点
  • 原创分1分
  • 专家分0分
  • 社区居民
7楼#
发布于:2008-03-10 17:05
用户被禁言,该主题自动屏蔽!
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
8楼#
发布于:2007-10-05 16:02
现在变成 不管模式 不管几分钟,都不会休眠..码的,气炸了
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
9楼#
发布于:2007-10-05 14:31
只要是在电池模式,固定5分钟休眠(不管设几分钟)
外部电源时,不管设几分钟,都不会休眠...
码的..气死了
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
10楼#
发布于:2007-10-04 22:19
WINCE_LOVER请教…
虽然电池状态和外部电源相关讯息都可正常显示了

可是很伤脑筋的,不管注册表怎么设,WINCE开机后电源管理怎么设
都固定5分钟后自动休眠了,这问题困扰很久了,有没有啥方向可查?
wangjingdi
驱动牛犊
驱动牛犊
  • 注册日期2007-09-18
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-09-22 13:58
好~
mfk_boy
驱动牛犊
驱动牛犊
  • 注册日期2007-09-05
  • 最后登录2007-09-05
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-09-05 16:56
好贴...顶一个..
pinkfire
驱动牛犊
驱动牛犊
  • 注册日期2007-08-14
  • 最后登录2007-12-13
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-09-05 16:45
好,谢谢。
现在问题解决了。我是在PB里面编的驱动,但其应该是EVC的内核。而EVC中只支持UNICODE编码,不支持ANSI字符串,这是它与VC不同的地方,必须将BATTERY_TOUCH_MUTEX这个字符串 改为_T ("BATTERY_TOUCH_MUTEX ")才能在编译的时候顺利通过!
wince_lover
驱动中牛
驱动中牛
  • 注册日期2007-01-10
  • 最后登录2010-12-20
  • 粉丝0
  • 关注0
  • 积分1103分
  • 威望735点
  • 贡献值2点
  • 好评度279点
  • 原创分1分
  • 专家分0分
14楼#
发布于:2007-09-05 12:02
第三个参数就是一个UNICODE字符串
pinkfire
驱动牛犊
驱动牛犊
  • 注册日期2007-08-14
  • 最后登录2007-12-13
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-09-05 11:32
谢谢楼上,上面那个问题已经解决了,但又有一个新的问题。
我在createmutex()时,第三个参数,即进程的名字,是如何命名的,我改变了名称,结果系统说是一个未声明的变量。我查了一下PB的帮助手册,上面说这是一个指针变量,指向进程的名称:
Long pointer to a null-terminated string specifying the name of the mutex object.
我的名称为何不识别呢?
wince_lover
驱动中牛
驱动中牛
  • 注册日期2007-01-10
  • 最后登录2010-12-20
  • 粉丝0
  • 关注0
  • 积分1103分
  • 威望735点
  • 贡献值2点
  • 好评度279点
  • 原创分1分
  • 专家分0分
16楼#
发布于:2007-09-05 09:26
我没有看过2410的代码,不过有没有无关紧要。只要你在驱动退出的时候释放互斥量就可以了
pinkfire
驱动牛犊
驱动牛犊
  • 注册日期2007-08-14
  • 最后登录2007-12-13
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-09-04 22:28
楼主你好,我的是2410,wince4.2的系统,我按照你的方法修改触摸屏的驱动,但在2410的DRIVERS下面的触摸屏驱动里并没有找到这个函数:PddpTouchPanelDeallocateVm,能告知原因吗,还有这个函数起到什么作用啊
zhongnanjun
驱动牛犊
驱动牛犊
  • 注册日期2007-05-18
  • 最后登录2009-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-08-17 15:50
兄弟 真是太感谢了啊!!
wowdp
驱动牛犊
驱动牛犊
  • 注册日期2007-03-28
  • 最后登录2008-12-30
  • 粉丝0
  • 关注0
  • 积分230分
  • 威望24点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2007-04-24 14:46
搞定了,原来是RETAILMSG(1, (TEXT("Before ADC  sample\r\n")))以及RETAILMSG(1, (
TEXT("after ADC  sample\r\n")))
,这两句话在作怪,我把他们注释掉既没问题了。实在是,感谢楼主的帮助了。
上一页
游客

返回顶部