254987651 发表于 2021-12-15 22:42:36

高通的电量百分比也太简单粗暴了吧

本帖最后由 dcp 于 2021-12-15 22:43 编辑

电池电量和电压都不是线性关系,就这样简单粗暴啊。

/*******************************************************************************
FUNCTION
    powerManagerBatteryLevelAsPercentage

DESCRIPTION
    Call this function to get battery level in percentage.
RETURNS
    BATTERY_LEVEL_INVALID on invalid battery configuration
*/
uint16 powerManagerBatteryLevelAsPercentage(void)
{
   
    uint16 battery_level = BATTERY_LEVEL_INVALID;
    uint16 voltage = powerManagerReadVbatVoltage();
    sink_battery_limits battery_limits ;
    powerManagerGetMinandMaxBatteryLimit(&battery_limits);
    /* calculate % battery level using: (currentV - minV)/(maxV - minV)*100 */
    if (battery_limits.max_battery_v > battery_limits.min_battery_v)
    {
      if (voltage < battery_limits.min_battery_v)
      {
            battery_level = 0;
      }
      else if (voltage > battery_limits.max_battery_v)
      {
            battery_level = 100;
      }
      else
      {
            battery_level = (uint16)(((uint32)(voltage - battery_limits.min_battery_v)* (uint32)100) / (uint32)(battery_limits.max_battery_v - battery_limits.min_battery_v));
      }
    }
    return battery_level;
}

smuhsy 发表于 2021-12-16 09:15:30

304x可以填表

天中雨水 发表于 2021-12-16 09:18:41

简单明了,需要准确,看起来要加库仑计

254987651 发表于 2021-12-16 21:14:30

smuhsy 发表于 2021-12-16 09:15
304x可以填表

earbud和headset都可以填表了吗?

smuhsy 发表于 2021-12-17 09:26:19

earbud中搜索earbud_soc_config_table
headset不清楚

254987651 发表于 2021-12-17 11:49:21

smuhsy 发表于 2021-12-17 09:26
earbud中搜索earbud_soc_config_table
headset不清楚

看到了,谢谢,headset也有,

zudongliu 发表于 2021-12-22 19:43:01

简单明了,需要准确,看起来要加库仑计

254987651 发表于 2021-12-22 22:39:38

smuhsy 发表于 2021-12-16 09:15
304x可以填表

好像必须库仑计了,要不然不好解决充电电压浮高问题。

smuhsy 发表于 2021-12-23 10:22:22

那这个成本又增加了哟,万一板子没地方放还麻烦
页: [1]
查看完整版本: 高通的电量百分比也太简单粗暴了吧