0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 22:31:25 +03:00

Battery percentage added

This commit is contained in:
OneOfEleven 2023-09-09 10:17:58 +01:00
parent 09482d38b3
commit 9131d75cb5
8 changed files with 34 additions and 5 deletions

View File

@ -22,9 +22,13 @@ To enable the custom option just uncomment the line by removing the starting '#'
# Other changes made # Other changes made
Battery voltage boot screen now includes the percentage (as well as voltage).
* "STEP" menu, added 1.25kHz option, removed 5kHz option * "STEP" menu, added 1.25kHz option, removed 5kHz option
* "ABR" menu, shows extended backlight times * "ABR" menu, shows extended backlight times
* "MIC" menu, shows mic gain in dB's, now includes the max mic gain possible (+15.5dB) * "MIC" menu, shows mic gain in dB's, now includes the max mic gain possible (+15.5dB)
* "VOL" menu, renamed to "BATVOL", shows voltage and percentage
* "AM" menu, renamed to "MODE", shows modulation mode
# Compiler # Compiler

BIN
firmware

Binary file not shown.

Binary file not shown.

Binary file not shown.

3
misc.c
View File

@ -29,6 +29,9 @@ bool gSetting_350EN;
uint8_t gSetting_F_LOCK; uint8_t gSetting_F_LOCK;
bool gSetting_ScrambleEnable; bool gSetting_ScrambleEnable;
const uint16_t gMax_bat_v = 840; // 8.4V
const uint16_t gMin_bat_v = 660; // 6.6V
const uint32_t gDefaultAesKey[4] = const uint32_t gDefaultAesKey[4] =
{ {
0x4AA5CC60, 0x4AA5CC60,

3
misc.h
View File

@ -75,6 +75,9 @@ enum CssScanMode_t {
typedef enum CssScanMode_t CssScanMode_t; typedef enum CssScanMode_t CssScanMode_t;
extern const uint16_t gMax_bat_v;
extern const uint16_t gMin_bat_v;
extern const uint32_t *gUpperLimitFrequencyBandTable; extern const uint32_t *gUpperLimitFrequencyBandTable;
extern const uint32_t *gLowerLimitFrequencyBandTable; extern const uint32_t *gLowerLimitFrequencyBandTable;

View File

@ -89,7 +89,7 @@ static const char MenuList[][7] =
"PONMSG", "PONMSG",
"ROGER", "ROGER",
"BATVOL", "BATVOL",
"AM", "MODE",
// 48 // 48
#ifndef DISABLE_NOAA #ifndef DISABLE_NOAA
"NOAA_S", "NOAA_S",
@ -375,6 +375,10 @@ void UI_DisplayMenu(void)
sprintf(String, "%d sec", gSubMenuSelection * 10); sprintf(String, "%d sec", gSubMenuSelection * 10);
break; break;
case MENU_AM:
strcpy(String, (gSubMenuSelection == 0) ? "FM" : "AM");
break;
case MENU_BCL: case MENU_BCL:
case MENU_BEEP: case MENU_BEEP:
case MENU_AUTOLK: case MENU_AUTOLK:
@ -383,7 +387,6 @@ void UI_DisplayMenu(void)
case MENU_STE: case MENU_STE:
case MENU_D_ST: case MENU_D_ST:
case MENU_D_DCD: case MENU_D_DCD:
case MENU_AM:
#ifndef DISABLE_NOAA #ifndef DISABLE_NOAA
case MENU_NOAA_S: case MENU_NOAA_S:
#endif #endif
@ -497,7 +500,7 @@ void UI_DisplayMenu(void)
break; break;
case MENU_VOL: case MENU_VOL:
sprintf(String, "%.3fV", gBatteryVoltageAverage * 0.01); // argh, floating point :( sprintf(String, "%.2fV", gBatteryVoltageAverage * 0.01); // argh, floating point :(
break; break;
case MENU_RESET: case MENU_RESET:
@ -511,6 +514,15 @@ void UI_DisplayMenu(void)
UI_PrintString(String, 50, 127, 2, 8, true); UI_PrintString(String, 50, 127, 2, 8, true);
if (gMenuCursor == MENU_VOL)
{ // 2nd text line
const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v :
(gBatteryVoltageAverage > gMax_bat_v) ? gMax_bat_v :
gBatteryVoltageAverage;
sprintf(String, "%u%%", (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v));
UI_PrintString(String, 50, 127, 4, 8, true);
}
if (gMenuCursor == MENU_OFFSET) if (gMenuCursor == MENU_OFFSET)
UI_PrintString("MHz", 50, 127, 4, 8, true); UI_PrintString("MHz", 50, 127, 4, 8, true);

View File

@ -21,6 +21,7 @@
#include "external/printf/printf.h" #include "external/printf/printf.h"
#include "helper/battery.h" #include "helper/battery.h"
#include "settings.h" #include "settings.h"
#include "misc.h"
#include "ui/helper.h" #include "ui/helper.h"
#include "ui/welcome.h" #include "ui/welcome.h"
#include "version.h" #include "version.h"
@ -44,8 +45,14 @@ void UI_DisplayWelcome(void)
if (gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_VOLTAGE) if (gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_VOLTAGE)
{ {
const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v :
(gBatteryVoltageAverage > gMax_bat_v) ? gMax_bat_v :
gBatteryVoltageAverage;
sprintf(WelcomeString0, "VOLTAGE"); sprintf(WelcomeString0, "VOLTAGE");
sprintf(WelcomeString1, "%.2fV", gBatteryVoltageAverage * 0.01); // argh, floating point :( sprintf(WelcomeString1, "%.2fV %u%%",
gBatteryVoltageAverage * 0.01, // argh, floating point :(
(100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v));
} }
else else
{ {