diff --git a/app/menu.c b/app/menu.c index 6c65cf2..a4d7f11 100644 --- a/app/menu.c +++ b/app/menu.c @@ -361,7 +361,7 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax) case MENU_BATTYP: //*pMin = 0; - *pMax = 1; + *pMax = 2; break; case MENU_F1SHRT: diff --git a/helper/battery.c b/helper/battery.c index c5ee465..18ef120 100644 --- a/helper/battery.c +++ b/helper/battery.c @@ -44,14 +44,12 @@ typedef enum { BATTERY_LOW_CONFIRMED } BatteryLow_t; - uint16_t lowBatteryCountdown; const uint16_t lowBatteryPeriod = 30; volatile uint16_t gPowerSave_10ms; - -const uint16_t Voltage2PercentageTable[][7][2] = { +const uint16_t Voltage2PercentageTable[][7][3] = { [BATTERY_TYPE_1600_MAH] = { {828, 100}, {814, 97 }, @@ -71,15 +69,28 @@ const uint16_t Voltage2PercentageTable[][7][2] = { {630, 0 }, {0, 0 }, }, + + [BATTERY_TYPE_3500_MAH] = { + {837, 100}, + {826, 95 }, + {750, 50 }, + {700, 25 }, + {610, 5 }, + {600, 0 }, + {0, 0 }, + }, }; -static_assert(ARRAY_SIZE(Voltage2PercentageTable[BATTERY_TYPE_1600_MAH]) == - ARRAY_SIZE(Voltage2PercentageTable[BATTERY_TYPE_2200_MAH])); - +static_assert( + (ARRAY_SIZE(Voltage2PercentageTable[BATTERY_TYPE_1600_MAH]) == + ARRAY_SIZE(Voltage2PercentageTable[BATTERY_TYPE_2200_MAH])) && + (ARRAY_SIZE(Voltage2PercentageTable[BATTERY_TYPE_2200_MAH]) == + ARRAY_SIZE(Voltage2PercentageTable[BATTERY_TYPE_3500_MAH])) + ); unsigned int BATTERY_VoltsToPercent(const unsigned int voltage_10mV) { - const uint16_t (*crv)[2] = Voltage2PercentageTable[gEeprom.BATTERY_TYPE]; + const uint16_t (*crv)[3] = Voltage2PercentageTable[gEeprom.BATTERY_TYPE]; const int mulipl = 1000; for (unsigned int i = 1; i < ARRAY_SIZE(Voltage2PercentageTable[BATTERY_TYPE_2200_MAH]); i++) { if (voltage_10mV > crv[i][0]) { diff --git a/helper/battery.h b/helper/battery.h index c21a14e..19e210e 100644 --- a/helper/battery.h +++ b/helper/battery.h @@ -37,6 +37,7 @@ extern volatile uint16_t gPowerSave_10ms; typedef enum { BATTERY_TYPE_1600_MAH, BATTERY_TYPE_2200_MAH, + BATTERY_TYPE_3500_MAH, BATTERY_TYPE_UNKNOWN } BATTERY_Type_t; diff --git a/ui/menu.c b/ui/menu.c index cabc34d..3c343a0 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -328,7 +328,8 @@ const char gSubMenu_BAT_TXT[][8] = const char gSubMenu_BATTYP[][9] = { "1600mAh", - "2200mAh" + "2200mAh", + "3500mAh" }; #ifndef ENABLE_FEAT_F4HWN diff --git a/ui/menu.h b/ui/menu.h index 89114fc..4487c7a 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -184,7 +184,7 @@ extern const char gSubMenu_RESET[2][4]; extern const char* const gSubMenu_F_LOCK[F_LOCK_LEN]; extern const char gSubMenu_RX_TX[4][6]; extern const char gSubMenu_BAT_TXT[3][8]; -extern const char gSubMenu_BATTYP[2][9]; +extern const char gSubMenu_BATTYP[3][9]; #ifndef ENABLE_FEAT_F4HWN extern const char gSubMenu_SCRAMBLER[11][7];