⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
2个职位/ 0个新职位
最后发表
lewuyouc
离线
最后看到:2年1星期前
加入:2016-07-18 01:38
电池级

你好,

我为DA14580使用SDK5.0.4。我需要监控电池电量。
SDK告诉我们如何检查CR2032和CR1225电池水平。我不知道计算上有差异的原因。
我现在用的是CR2477电池,下面的功能怎么修改?

uint8_t batt_cal_cr2032 (uint16_t adc_sample)

uint8_t batt_lvl;

If (adc_sample > 1705)
batt_lvl = 100;
Else if (adc_sample <= 1705 && adc_sample > 1584)
batt_lvl = 28 + (uint8_t) (((((adc_sample - 1584) < < 16) / (1705 - 1584)) * 72) > > 16);
Else if (adc_sample <= 1584 && adc_sample > 1360)
batt_lvl = 4 + (uint8_t) (((((adc_sample - 1360) < < 16) / (1584 - 1360)) * 24) > > 16);
Else if (adc_sample <= 1360 && adc_sample > 1136)
batt_lvl = (uint8_t) (((((adc_sample - 1136) < < 16) / (1360 - 1136)) * 4) > > 16);
其他的
batt_lvl = 0;

返回batt_lvl;

关键词:
设备:
PM_Dialog
离线
最后看到:4天13小时前
工作人员
加入:2018-02-08 11:03
嗨lewuyouc,

嗨lewuyouc,

函数的作用是:将ADC模块中测量的值转换为CR2032电池剩余寿命的粗略估计。函数的参数是两个ADC样本的和。这种方法以及最大/最小的限制(1705=3.0V, 1137=2V)。其余的数字(1584和1360)分别为2.8 V和2.4 V的ADC样本和值,用于根据CR2032放电模型估算剩余电池寿命。关于CR2477,请注意,我们从未使用过它,因此我知道如何使用适当的值配置此功能。一种可能的解决方法是做一些实验,用多项式曲线求出电池容量与电池电压的关系,得到电池电压= f(电池容量)的图。然后您可以转换电池电压到十进制值根据adc的样本。例如,关于最大电压:

电池值(十进制)= (1705 / 3 V) *电池电压(V)

谢谢,PM_Dialog