WINCE 电源管理和电池驱动问题?

wolong98 2009-02-09 02:10:07
自己编写了电池驱动,可以正常读取电池状态和电压(通过I2C接口)?

驱动中 BatteryPDDGetStatus 中返回相应参数结构.

BOOL WINAPI
BatteryPDDGetStatus(
PSYSTEM_POWER_STATUS_EX2 pstatus,
PBOOL pfBatteriesChangedSinceLastCall
)
{
DWORD charger_voltage;
DWORD sample;
DWORD temperature = 0;
unsigned ad_number = 5;
float voltage_percent = 0;
BOOL PowerStatus;
static DWORD ChrgI = 0,ChrgIMax = 0,ChrgIMin = 0; //add,wgy, 2006.4.25

PowerStatus = IsACOnline();

// Level Indicator
if(voltage_percent >= 0.7)
pstatus->BatteryFlag |= BATTERY_FLAG_HIGH;
else if (( voltage_percent <0.70) && (voltage_percent >=0.3))
pstatus->BatteryFlag |= BATTERY_FLAG_LOW;
else if(voltage_percent<=0.20)
pstatus->BatteryFlag |= BATTERY_FLAG_CRITICAL;
pstatus->BatteryLifePercent = (BYTE) (voltage_percent * 100);
pstatus->Reserved1 = 0;
pstatus->BatteryLifeTime = BATTERY_LIFE_UNKNOWN;
pstatus->BatteryFullLifeTime = BATTERY_LIFE_UNKNOWN;

pstatus->Reserved2 = 0;
pstatus->BackupBatteryFlag = BATTERY_FLAG_UNKNOWN;
pstatus->BackupBatteryLifePercent = 0;
pstatus->Reserved3 = 0;
pstatus->BackupBatteryLifeTime = BATTERY_LIFE_UNKNOWN;
pstatus->BackupBatteryFullLifeTime = BATTERY_LIFE_UNKNOWN;

pstatus->BatteryChemistry = BATTERY_CHEMISTRY_LION;
pstatus->BatteryVoltage = terminal_voltage/BAT_MV(1000);
pstatus->BatteryCurrent = 0;
pstatus->BatteryAverageCurrent = 0;
pstatus->BatteryAverageInterval = 0;
pstatus->BatterymAHourConsumed = 0;
pstatus->BatteryTemperature = temperature;
pstatus->BackupBatteryVoltage = 0;

*pfBatteriesChangedSinceLastCall = FALSE;
return (TRUE);
}


可WINCE每次开机进入桌面 都提示对话框( Main Batteries Very Low ), 点确定后, 进入控制面板, 查看电源管理,
电源管理面板可以显示 电量百分比 相应的Main Batteries 显示 Good ,
请问那个参数返回不对?
谢谢
...全文
575 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
szfrankcn 2010-03-10
  • 打赏
  • 举报
回复
接地同问,用DS2786,在wince 5.0下,充放电都正常,但是在关机时充电,系统的百分数不跟随更新,比如关机前显示58%,关机后充满了(测电压已达到满电),充电电流也切断了(已确认),但再开机还是58%,这是为什么呢?
wolong98 2009-02-19
  • 打赏
  • 举报
回复
偶用的 ds2786 芯片, 充电,放电表都省了。
wangxin_801115 2009-02-10
  • 打赏
  • 举报
回复
if(voltage_percent >= 0.7)
pstatus->BatteryFlag |= BATTERY_FLAG_HIGH;
else if (( voltage_percent <0.70) && (voltage_percent >=0.3))
pstatus->BatteryFlag |= BATTERY_FLAG_LOW;
else if(voltage_percent <=0.20)
pstatus->BatteryFlag |= BATTERY_FLAG_CRITICAL;

你可以在这打印信息看看是不是对应执行了

也可以通过采电压量来判断,就是没转换成百分比之前来判断
如: if(voltage >= 3.7)
current_BatteryFlag = BATTERY_FLAG_HIGH;
else if (voltage >= 3.6)
current_BatteryFlag = BATTERY_FLAG_LOW;
else
current_BatteryFlag = BATTERY_FLAG_CRITICAL;

另外:请教您的充电、放电表是怎么做的?可否贴出来看看
hzdysymbol 2009-02-10
  • 打赏
  • 举报
回复
这种现象以前也有遇到过
直接把开机的时候前面检测到的一些数据丢掉,不做处理即可
Larry_Liang_cn 2009-02-09
  • 打赏
  • 举报
回复
提示对话框( Main Batteries Very Low )
就是由于pstatus->BatteryFlag |= BATTERY_FLAG_CRITICAL;
从你贴的代码上看,楼主应该检查下voltage_percent
wolong98 2009-02-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ultrapro 的回复:]
voltage_percent 不是一直是0么,pstatus->BatteryFlag |= BATTERY_FLAG_CRITICAL
[/Quote]

不是0
基本都显示 85% 左右
儿大不由爷 2009-02-09
  • 打赏
  • 举报
回复
voltage_percent 不是一直是0么,pstatus->BatteryFlag |= BATTERY_FLAG_CRITICAL
1。安装   首先看看安装是否简便,光盘内有S60,UIQ,Smartphone和WinCE的PDF格式的说明书,有对应这几个的驱动,进入S60的,只有English的,进入后是个GamePad的SIS文件,就是S60上专门的那种。   插USB蓝牙适配器在USB卡上,然后发送这个到手机,提示收到,打开,安装,一路下去到储存卡,大约占了3M的空间,安装完后出现和上述游戏手柄一摸一样的图标在手机菜单里边,名称为GamePad。 2。连接   双击图标,此时蓝牙为打开状态,同时打开手柄电源开关,绿色小灯一亮一亮,然后选择Active Game Pad,出现提示框显示正在连接,3秒后状态是ON,整个软件在CONFIG栏下边,可以对应手柄的上下左右,L,R,Start,A,B,C,D,每个手柄的按键都可以对应手机的左右的快捷键,中键的选择,方向键上下左右和0-9以及#*,所有的按键都可以自定义,功能非常强大 3。使用   设置完按键,进入烈焰风暴,懒得贴图了,将烈焰风暴设置为默认,方向键控制上下左右,2是开枪,3是保险,对应手柄的山下左右,A是2是开枪,B是3是保险。 进入游戏,方向键手感讲过,和一般FC的殊无二至,开枪保险都没有任何问题   重点提示,这个手柄的虽然用的蓝牙,虽然手机开着游戏,但是反应非常非常灵敏,基本上无法以延迟进行微操作,D坛也说过,象我这样用键盘玩惯稍微慢点按键反应的1945的有很大不适应,最高难度根本无法控制飞机的非常小范围的操作。   之后测试FC模拟器,按键设置完毕后进入游戏,采用游戏为松鼠大战2代,这下爽了,灵敏的好处来了,看我上下翻飞吧,哈哈哈哈哈哈哈。   再次测试,这回是金属咆哮II,一如既往的灵敏,这么玩超级爽,超级爽,没有别的形容词。      最后详细解释一下按键手感,个人认为用起来确实不如PSP的舒服,灵敏度反而对我来说稍微高了一些,当然,在玩模拟器的时候可以设置按键的反映,但是一般的S60游戏就不行了,金属咆哮II倒是灵敏些的好。   一节7号电池,自打收到开始玩,到现在未发现任何缺电的迹象,绿色灯,基本游戏时间3个小时左右,标称可以到8个小时左右,个人认为差不多。   另外就安全性问题,手柄的胶皮处可以上下调节,手机位置也可以做小幅度调整,实物一样,夹住后翻转手机不会掉下来。 总结: 优点: 1。绝对YY 2。反应灵敏 3。安装超级简单 4。设定功能强大 5。电力维持时间比较长 缺点: 1。表面容易留下指纹 2。按键手感不是最佳 3。打开使用后,R键的位置相对诡异 4。价格稍高 5。暂时只能用于S60,UIQ,PPC类手机使用。
基于Atmel AT91SAM9263(ARM 926EJ-STM,主频200MHz)工业级处理器 l 板载128MB NandFlash,64MB SDRAM l 体积细小,功耗低,裁剪灵活 l 支持3.5、4.3、5.6、7寸LCD液晶屏,可在高达800*480分辩率下流畅显示 l 预装Microsoft WinCE 6.0或Linux 2.6操作系统,提供相关驱动源码 l 提供全部板载外设驱动程序说明及相关测试程序 UploadFile/2009/09/DownloadFile/SBC6300X_1.rar 再来个底板特性 底板特性: 类别 功能 参数 存储接口 SD card SDIO模式 支持热插拔 电源 输入电源 宽电压范围8~20V,默认提供12V电源输入 输出电源 5V和Vin 通信接口 串口 DEBUG:RS232/TTL 3线 COM0:RS232/TTL 5线 COM1:RS232/TTL 5线 COM2:RS232/TTL /半双工 RS485(带隔离) 3线 COM3-6:RS232/TTL 5线 CAN CAN2.0通信接口 NET0 MCU内部自带控制器,10/100Mbps 带灯 EXT_NET DM9000扩展网络接口,10/100Mbps 带灯 USB Host 2路USB2.0 Host控制器12Mbps 支持USB键盘,USB鼠标 USB Device 1路USB2.0 Device控制器12Mbps TWI 最高400Kbps,支持主从模式,排针形式引出 显示接口 LCD接口 CPU支持最大分辨率2048*2048,颜色位数16位RGB模式,目前选配支持3.5,4.3,5.6,7寸屏 输入输出接口 触摸屏接口 4线电阻式触摸屏接口 阵列键盘接口 6x6矩阵键盘(也可作为12个独立IO使用) Audio In 支持音频录入 Audio Out 支持MP3播放,提供1.5W音频功放输出,排针引出 AD转换接口 8路12bitAD转换输入接口 通用接口 GPIO 41个独立GPIO,其中包括有如下复用功能: l ISI接口 l 4路PWM l 1路SDIO接口 l 1路SPI1接口(4个片选) Buzzer 一个GPIO控制的BUZZER JTAG 标准JTAG接口20PIN 按键 2个GPIO按键,1个WKUP按键,1个RESET按键 面板及指示灯 电源插入指示、主板供电指示, 提供排针引出形式的WKUP、IO、复位、电源开关面板接口 其它 看门狗控制器 内置 实时时钟 独立实时时钟模块,备用可充电电池 《ADI参考电路》限时下载!奖励300信元! 点评 回复 支持 反对 举报 timllatmel 2 主题 6 帖子 1605 积分 金领一族 Rank: 3Rank: 3 QQ 发贴收入40 信元附件收入1515 信元下载支出0 信元注册时间2009-6-27最后登录2009-10-16在线时间1 小时 发消息 4# 楼主| 发表于 2009-9-29 10:03:37 | 只看该作者 linux下的驱动特性 linux下的驱动特性: 项目 特性 描 述 启动代码 版本 u-boot 1.3.4 启动方式 支持从DataFlash、NandFlash、NORFflash启动 下载方式 支持网络、SAM-BA下载内核 内核 版本 Linux 2.6.24 支持文件系统格式 ROM/CRAM/EXT2/RAMDISK/YAFFS2/FAT32 serial 8个串口驱动 RTC 硬件时钟驱动,保存系统时间 扩展以太网口1 10/100M以太网卡DM9000驱动 以太网口2 CPU内部自带MAC层的以太网驱动 LCD 320x240,480x272,640x480,800x480四种屏的驱动 touch screen 触摸屏驱动 音频 音频驱动 MMC/SD SDIO模式驱动 USB host 可支持USB接口的键盘、鼠标、WiFi和蓝牙模块。 USB device USB device驱动 keypad 6x6矩阵键盘驱动 EEPROM 提供读写EEPROM驱动和TWI驱动 AD转换 提供驱动 CAN 提供驱动 GPIO 提供驱动 文件系统 文件系统格式 yaffs2文件系统,可读写文件系统 网络协议及网络应用程序 TCP/IP 完整的TCP/IP协议,支持Web server 配置系统和服务 Network Ping Ping命令,用于检查系统  Ifconfig,route,inetd 用于网络配置及相关服务程序 Login,sh,echo,discard 登录和其它程序 基本工具 Linux常用命令 Cat,chmod,discard,echo,flashwrite,flashfsd,free,genhtml,init,kill,loader,Ls,mkdir,mount,ps,reboot,rm,smanaged,sysconf,yes,insmod,lsmod,rmmod 《ADI参考电路》限时下载!奖励300信元! 点评 回复 支持 反对 举报 timllatmel 2 主题 6 帖子 1605 积分 金领一族 Rank: 3Rank: 3 QQ 发贴收入40 信元附件收入1515 信元下载支出0 信元注册时间2009-6-27最后登录2009-10-16在线时间1 小时 发消息 5# 楼主| 发表于 2009-9-29 10:06:42 | 只看该作者

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧