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

fixed wot I broke last time (battery bar)

This commit is contained in:
OneOfEleven 2023-12-06 12:07:13 +00:00
parent 049b2237b7
commit 496856669d
8 changed files with 105 additions and 83 deletions

View File

@ -43,7 +43,7 @@ ENABLE_BIG_FREQ := 0
ENABLE_DTMF_LIVE_DECODER := 0 ENABLE_DTMF_LIVE_DECODER := 0
ENABLE_DTMF_TIMING_SETTINGS := 0 ENABLE_DTMF_TIMING_SETTINGS := 0
ENABLE_SHOW_FREQ_IN_CHAN := 1 ENABLE_SHOW_FREQ_IN_CHAN := 1
# smaa bolf 580 B # smaa bold 580 B
ENABLE_SMALL_BOLD := 0 ENABLE_SMALL_BOLD := 0
# smallest font 2 kB # smallest font 2 kB
ENABLE_SMALLEST_FONT := 0 ENABLE_SMALLEST_FONT := 0
@ -82,6 +82,7 @@ ENABLE_FASTER_CHANNEL_SCAN := 1
ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1 ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1
# Tx Audio Bar 300 B # Tx Audio Bar 300 B
ENABLE_TX_AUDIO_BAR := 0 ENABLE_TX_AUDIO_BAR := 0
ENABLE_TX_AUDIO_BACKLIGHT := 0
# Side Button Menu 300 B # Side Button Menu 300 B
ENABLE_SIDE_BUTT_MENU := 0 ENABLE_SIDE_BUTT_MENU := 0
# Key Lock 400 B # Key Lock 400 B
@ -471,6 +472,9 @@ endif
ifeq ($(ENABLE_TX_AUDIO_BAR),1) ifeq ($(ENABLE_TX_AUDIO_BAR),1)
CFLAGS += -DENABLE_TX_AUDIO_BAR CFLAGS += -DENABLE_TX_AUDIO_BAR
endif endif
ifeq ($(ENABLE_TX_AUDIO_BACKLIGHT),1)
CFLAGS += -DENABLE_TX_AUDIO_BACKLIGHT
endif
ifeq ($(ENABLE_COPY_CHAN_TO_VFO_TO_CHAN),1) ifeq ($(ENABLE_COPY_CHAN_TO_VFO_TO_CHAN),1)
CFLAGS += -DENABLE_COPY_CHAN_TO_VFO_TO_CHAN CFLAGS += -DENABLE_COPY_CHAN_TO_VFO_TO_CHAN
endif endif

View File

@ -96,6 +96,7 @@ ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS := 1 open the squelch when holding down U
ENABLE_FASTER_CHANNEL_SCAN := 1 increase the channel scan speed, but also make the squelch more twitchy ENABLE_FASTER_CHANNEL_SCAN := 1 increase the channel scan speed, but also make the squelch more twitchy
ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1 long press M, copy channel to VFO, or VFO to channel ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1 long press M, copy channel to VFO, or VFO to channel
ENABLE_TX_AUDIO_BAR := 0 enable a menu option for showing a TX audio level bar ENABLE_TX_AUDIO_BAR := 0 enable a menu option for showing a TX audio level bar
ENABLE_TX_AUDIO_BACKLIGHT := 0 backlight will follow TX audio level
ENABLE_SIDE_BUTT_MENU := 0 enable menu option for configuring the programmable side buttons ENABLE_SIDE_BUTT_MENU := 0 enable menu option for configuring the programmable side buttons
ENABLE_KEYLOCK := 0 enable keylock menu option + keylock code ENABLE_KEYLOCK := 0 enable keylock menu option + keylock code
ENABLE_PANADAPTER := 1 centered on the selected VFO RX frequency, only shows if dual-watch is disabled ENABLE_PANADAPTER := 1 centered on the selected VFO RX frequency, only shows if dual-watch is disabled

View File

@ -233,7 +233,7 @@ void ACTION_Scan(bool bRestart)
// jump to the next channel // jump to the next channel
APP_channel_next(true, g_scan_state_dir); APP_channel_next(true, g_scan_state_dir);
g_scan_tick_10ms = 0; g_scan_tick_10ms = 0;
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
g_update_status = true; g_update_status = true;
@ -347,7 +347,7 @@ void ACTION_Scan(bool bRestart)
g_alarm_state = b1750 ? ALARM_STATE_TX1750 : ALARM_STATE_TXALARM; g_alarm_state = b1750 ? ALARM_STATE_TX1750 : ALARM_STATE_TXALARM;
g_alarm_running_counter_10ms = 0; g_alarm_running_counter_10ms = 0;
#elif defined(ENABLE_ALARM) #elif defined(ENABLE_ALARM)
g_alarm_state = ALARM_STATE_TXALARM; g_alarm_state = ALARM_STATE_TXALARM;
g_alarm_running_counter_10ms = 0; g_alarm_running_counter_10ms = 0;
#else #else
g_alarm_state = ALARM_STATE_TX1750; g_alarm_state = ALARM_STATE_TX1750;
@ -375,7 +375,7 @@ void ACTION_Scan(bool bRestart)
#ifdef ENABLE_VOX #ifdef ENABLE_VOX
g_vox_resume_tick_10ms = 80; g_vox_resume_tick_10ms = 80;
#endif #endif
g_flag_reconfigure_vfos = true; g_flag_reconfigure_vfos = true;
g_request_display_screen = DISPLAY_MAIN; g_request_display_screen = DISPLAY_MAIN;
return; return;

View File

@ -205,7 +205,7 @@ static void APP_process_new_receive(void)
{ {
FUNCTION_Select(FUNCTION_FOREGROUND); FUNCTION_Select(FUNCTION_FOREGROUND);
g_update_display = true; g_update_display = true;
// g_update_status = true; //g_update_status = true;
} }
return; return;
@ -215,7 +215,7 @@ static void APP_process_new_receive(void)
{ {
case MOD_MODE_FM: case MOD_MODE_FM:
case MOD_MODE_AM: case MOD_MODE_AM:
BK4819_set_AFC(2); BK4819_set_AFC(3);
break; break;
default: default:
case MOD_MODE_DSB: case MOD_MODE_DSB:
@ -244,8 +244,11 @@ static void APP_process_new_receive(void)
g_found_cdcss = false; g_found_cdcss = false;
} }
else else
if (!flag) // if (!flag)
if (!flag && !g_monitor_enabled) // 1of11
{
return; return;
}
if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF) if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF)
{ // not scanning { // not scanning
@ -328,32 +331,23 @@ static void APP_process_rx(void)
goto Skip; goto Skip;
} }
switch (g_current_code_type) if (g_found_ctcss_tick_10ms == 0)
{ {
default: if (g_current_code_type == CODE_TYPE_CONTINUOUS_TONE && g_found_ctcss)
case CODE_TYPE_NONE: {
break; g_found_ctcss = false;
g_found_cdcss = false;
Mode = END_OF_RX_MODE_END;
goto Skip;
}
case CODE_TYPE_CONTINUOUS_TONE: if ((g_current_code_type == CODE_TYPE_DIGITAL || CODE_TYPE_REVERSE_DIGITAL) && g_found_cdcss)
if (g_found_ctcss && g_found_ctcss_tick_10ms == 0) {
{ g_found_ctcss = false;
g_found_ctcss = false; g_found_cdcss = false;
g_found_cdcss = false; Mode = END_OF_RX_MODE_END;
Mode = END_OF_RX_MODE_END; goto Skip;
goto Skip; }
}
break;
case CODE_TYPE_DIGITAL:
case CODE_TYPE_REVERSE_DIGITAL:
if (g_found_cdcss && g_found_cdcss_tick_10ms == 0)
{
g_found_ctcss = false;
g_found_cdcss = false;
Mode = END_OF_RX_MODE_END;
goto Skip;
}
break;
} }
if (g_squelch_open || g_monitor_enabled) if (g_squelch_open || g_monitor_enabled)
@ -516,7 +510,7 @@ bool APP_start_listening(void)
{ {
case MOD_MODE_FM: case MOD_MODE_FM:
case MOD_MODE_AM: case MOD_MODE_AM:
BK4819_set_AFC(2); // enable a bit BK4819_set_AFC(3); // enable a bit
break; break;
default: default:
case MOD_MODE_DSB: case MOD_MODE_DSB:
@ -981,6 +975,12 @@ void APP_process_radio_interrupts(void)
} }
} }
// #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT
// if (((reg_c >> 12) & 3u) > 0)
// { // phase shift detected
// }
// #endif
if ((reg_c & (1u << 0)) == 0) if ((reg_c & (1u << 0)) == 0)
break; // no interrupt flags break; // no interrupt flags
@ -1865,7 +1865,30 @@ void APP_process_functions(void)
case FUNCTION_TRANSMIT: case FUNCTION_TRANSMIT:
if (g_eeprom.config.setting.backlight_on_tx_rx == 1 || g_eeprom.config.setting.backlight_on_tx_rx == 3) if (g_eeprom.config.setting.backlight_on_tx_rx == 1 || g_eeprom.config.setting.backlight_on_tx_rx == 3)
BACKLIGHT_turn_on(backlight_tx_rx_time_secs); {
#ifdef ENABLE_TX_AUDIO_BACKLIGHT
static unsigned int hold_10ms = 0;
uint32_t level = BK4819_GetVoiceAmplitudeOut(); // 15:0
level *= 128;
level = NUMBER_isqrt((level < 65535) ? level : 65535);
level = (level * BACKLIGHT_MAX_BRIGHTNESS) / 255; // 0 ~ BACKLIGHT_MAX_BRIGHTNESS
level = (BACKLIGHT_MAX_BRIGHTNESS / 4) + ((level * 3) / 4); // 25% ~ 100%
if (g_backlight_tick_10ms > BACKLIGHT_MAX_BRIGHTNESS || g_backlight_tick_10ms <= level)
{
g_backlight_tick_10ms = level;
hold_10ms = 20;
}
else
if (hold_10ms > 0)
hold_10ms--;
else
if (g_backlight_tick_10ms > 0)
g_backlight_tick_10ms--;
BACKLIGHT_set_brightness(g_backlight_tick_10ms);
#else
BACKLIGHT_turn_on(backlight_tx_rx_time_secs);
#endif
}
break; break;
case FUNCTION_NEW_RECEIVE: case FUNCTION_NEW_RECEIVE:
@ -2387,6 +2410,8 @@ void APP_time_slice_10ms(void)
if (g_backlight_tick_10ms > 0 && if (g_backlight_tick_10ms > 0 &&
!g_ask_to_save && !g_ask_to_save &&
g_css_scan_mode == CSS_SCAN_MODE_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF &&
((g_eeprom.config.setting.backlight_on_tx_rx != 1 && g_eeprom.config.setting.backlight_on_tx_rx != 3) || g_current_function != FUNCTION_TRANSMIT) &&
// g_current_function != FUNCTION_TRANSMIT &&
g_current_display_screen != DISPLAY_AIRCOPY) g_current_display_screen != DISPLAY_AIRCOPY)
{ // don't turn off backlight if user is in backlight menu option { // don't turn off backlight if user is in backlight menu option
if (g_current_display_screen != DISPLAY_MENU || g_menu_cursor != MENU_AUTO_BACKLITE) if (g_current_display_screen != DISPLAY_MENU || g_menu_cursor != MENU_AUTO_BACKLITE)

Binary file not shown.

Binary file not shown.

View File

@ -83,26 +83,18 @@ void BATTERY_GetReadings(const bool bDisplayBatteryLevel)
{ {
const uint8_t PreviousBatteryLevel = g_battery_display_level; const uint8_t PreviousBatteryLevel = g_battery_display_level;
const uint16_t Voltage = (g_battery_voltages[0] + g_battery_voltages[1] + g_battery_voltages[2] + g_battery_voltages[3]) / 4; const uint16_t Voltage = (g_battery_voltages[0] + g_battery_voltages[1] + g_battery_voltages[2] + g_battery_voltages[3]) / 4;
unsigned int i;
g_battery_display_level = 0; g_battery_display_level = 0;
if (g_eeprom.calib.battery[5] < Voltage) for (i = ARRAY_SIZE(g_eeprom.calib.battery); i > 0; i--)
g_battery_display_level = 6; {
else if (g_eeprom.calib.battery[i - 1] < Voltage)
if (g_eeprom.calib.battery[4] < Voltage) {
g_battery_display_level = 5; g_battery_display_level = i;
else break;
if (g_eeprom.calib.battery[3] < Voltage) }
g_battery_display_level = 4; }
else
if (g_eeprom.calib.battery[2] < Voltage)
g_battery_display_level = 3;
else
if (g_eeprom.calib.battery[1] < Voltage)
g_battery_display_level = 2;
else
if (g_eeprom.calib.battery[0] < Voltage)
g_battery_display_level = 1;
g_battery_voltage_average = (Voltage * 760) / g_eeprom.calib.battery[3]; g_battery_voltage_average = (Voltage * 760) / g_eeprom.calib.battery[3];

View File

@ -127,8 +127,8 @@ const t_menu_item g_menu_list[] =
#endif #endif
#ifdef ENABLE_DTMF_TIMING_SETTINGS #ifdef ENABLE_DTMF_TIMING_SETTINGS
{"D PRE", VOICE_ID_INVALID, MENU_DTMF_PRE }, {"D PRE", VOICE_ID_INVALID, MENU_DTMF_PRE },
{"D1PERS", VOICE_ID_INVALID, MENU_DTMF_1ST_PERSIST }, {"D 1PER", VOICE_ID_INVALID, MENU_DTMF_1ST_PERSIST },
{"DHPERS", VOICE_ID_INVALID, MENU_DTMF_HASH_PERSIST }, {"D HPER", VOICE_ID_INVALID, MENU_DTMF_HASH_PERSIST },
{"D PER", VOICE_ID_INVALID, MENU_DTMF_PERSIST }, {"D PER", VOICE_ID_INVALID, MENU_DTMF_PERSIST },
{"D INT", VOICE_ID_INVALID, MENU_DTMF_INTERVAL }, {"D INT", VOICE_ID_INVALID, MENU_DTMF_INTERVAL },
#endif #endif
@ -1089,10 +1089,10 @@ void UI_DisplayMenu(void)
switch (g_menu_cursor) switch (g_menu_cursor)
{ {
case MENU_DTMF_PRE: case MENU_DTMF_PRE:
strcat(str, " PRE\n"); strcat(str, "BOT\nDELAY\n");
break; break;
case MENU_DTMF_1ST_PERSIST: case MENU_DTMF_1ST_PERSIST:
strcat(str, "1 CODE\nPERSIST\n"); strcat(str, "1CODE\nPERSIST\n");
break; break;
case MENU_DTMF_HASH_PERSIST: case MENU_DTMF_HASH_PERSIST:
strcat(str, "#\nPERSIST\n"); strcat(str, "#\nPERSIST\n");