diff --git a/Makefile b/Makefile index 26eec57..3153b6d 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ ENABLE_AM_FIX := 1 ENABLE_AM_FIX_SHOW_DATA := 1 ENABLE_SQUELCH_MORE_SENSITIVE := 1 ENABLE_FASTER_CHANNEL_SCAN := 1 -ENABLE_RSSI_BAR := 1 +ENABLE_RSSI_BAR := 0 ENABLE_SHOW_TX_TIMEOUT := 0 ENABLE_AUDIO_BAR := 1 ENABLE_COPY_CHAN_TO_VFO := 1 diff --git a/app/app.c b/app/app.c index 769de9d..d25a533 100644 --- a/app/app.c +++ b/app/app.c @@ -215,12 +215,12 @@ static void APP_HandleIncoming(void) if (g_ctcss_lost && g_current_code_type == CODE_TYPE_CONTINUOUS_TONE) { flag = true; - g_found_CTCSS = false; + g_found_ctcss = false; } if (g_cdcss_lost && g_cdcss_code_type == CDCSS_POSITIVE_CODE && (g_current_code_type == CODE_TYPE_DIGITAL || g_current_code_type == CODE_TYPE_REVERSE_DIGITAL)) { - g_found_CDCSS = false; + g_found_cdcss = false; } else if (!flag) @@ -286,10 +286,10 @@ static void APP_HandleReceive(void) break; case CODE_TYPE_CONTINUOUS_TONE: - if (g_found_CTCSS && g_found_CTCSS_count_down_10ms == 0) + if (g_found_ctcss && g_found_ctcss_count_down_10ms == 0) { - g_found_CTCSS = false; - g_found_CDCSS = false; + g_found_ctcss = false; + g_found_cdcss = false; Mode = END_OF_RX_MODE_END; goto Skip; } @@ -297,10 +297,10 @@ static void APP_HandleReceive(void) case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - if (g_found_CDCSS && g_found_CDCSS_count_down_10ms == 0) + if (g_found_cdcss && g_found_cdcss_count_down_10ms == 0) { - g_found_CTCSS = false; - g_found_CDCSS = false; + g_found_ctcss = false; + g_found_cdcss = false; Mode = END_OF_RX_MODE_END; goto Skip; } @@ -331,13 +331,13 @@ static void APP_HandleReceive(void) case CODE_TYPE_CONTINUOUS_TONE: if (g_ctcss_lost) { - g_found_CTCSS = false; + g_found_ctcss = false; } else - if (!g_found_CTCSS) + if (!g_found_ctcss) { - g_found_CTCSS = true; - g_found_CTCSS_count_down_10ms = 100; // 1 sec + g_found_ctcss = true; + g_found_ctcss_count_down_10ms = 100; // 1 sec } if (g_cxcss_tail_found) @@ -351,13 +351,13 @@ static void APP_HandleReceive(void) case CODE_TYPE_REVERSE_DIGITAL: if (g_cdcss_lost && g_cdcss_code_type == CDCSS_POSITIVE_CODE) { - g_found_CDCSS = false; + g_found_cdcss = false; } else - if (!g_found_CDCSS) + if (!g_found_cdcss) { - g_found_CDCSS = true; - g_found_CDCSS_count_down_10ms = 100; // 1 sec + g_found_cdcss = true; + g_found_cdcss_count_down_10ms = 100; // 1 sec } if (g_cxcss_tail_found) @@ -1571,23 +1571,23 @@ void APP_TimeSlice10ms(void) // *********** - if (g_flag_SaveVfo) + if (g_flag_save_vfo) { SETTINGS_SaveVfoIndices(); - g_flag_SaveVfo = false; + g_flag_save_vfo = false; } - if (g_flag_SaveSettings) + if (g_flag_save_settings) { SETTINGS_SaveSettings(); - g_flag_SaveSettings = false; + g_flag_save_settings = false; } #ifdef ENABLE_FMRADIO - if (g_flag_SaveFM) + if (g_flag_save_fm) { SETTINGS_SaveFM(); - g_flag_SaveFM = false; + g_flag_save_fm = false; } #endif @@ -2709,14 +2709,14 @@ Skip: g_beep_to_play = BEEP_NONE; } - if (g_flag_AcceptSetting) + if (g_flag_accept_setting) { g_menu_count_down = menu_timeout_500ms; MENU_AcceptSetting(); g_flag_refresh_menu = true; - g_flag_AcceptSetting = false; + g_flag_accept_setting = false; } if (g_search_flag_stop_scan) @@ -2730,7 +2730,7 @@ Skip: if (!key_held) SETTINGS_SaveSettings(); else - g_flag_SaveSettings = 1; + g_flag_save_settings = 1; g_request_save_settings = false; g_update_status = true; } @@ -2741,7 +2741,7 @@ Skip: if (!key_held) SETTINGS_SaveFM(); else - g_flag_SaveFM = true; + g_flag_save_fm = true; g_request_save_fm = false; } #endif @@ -2751,7 +2751,7 @@ Skip: if (!key_held) SETTINGS_SaveVfoIndices(); else - g_flag_SaveVfo = true; + g_flag_save_vfo = true; g_request_save_vfo = false; } diff --git a/app/menu.c b/app/menu.c index 297dec8..9d444f4 100644 --- a/app/menu.c +++ b/app/menu.c @@ -531,7 +531,7 @@ void MENU_AcceptSetting(void) g_eeprom.vox_switch = g_sub_menu_selection != 0; if (g_eeprom.vox_switch) g_eeprom.vox_level = g_sub_menu_selection - 1; - BOARD_EEPROM_LoadMoreSettings(); + BOARD_EEPROM_LoadCalibration(); g_flag_reconfigure_vfos = true; g_update_status = true; break; @@ -623,7 +623,7 @@ void MENU_AcceptSetting(void) case MENU_MIC: g_eeprom.mic_sensitivity = g_sub_menu_selection; - BOARD_EEPROM_LoadMoreSettings(); + BOARD_EEPROM_LoadCalibration(); g_flag_reconfigure_vfos = true; break; @@ -1290,7 +1290,7 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held) if (++g_edit_index >= 10) { // exit edit - g_flag_AcceptSetting = false; + g_flag_accept_setting = false; g_ask_for_confirmation = 1; } @@ -1561,13 +1561,13 @@ static void MENU_Key_MENU(const bool key_pressed, const bool key_held) // exit if (memcmp(g_edit_original, g_edit, sizeof(g_edit_original)) == 0) { // no change - drop it - g_flag_AcceptSetting = false; + g_flag_accept_setting = false; g_is_in_sub_menu = false; g_ask_for_confirmation = 0; } else { - g_flag_AcceptSetting = false; + g_flag_accept_setting = false; g_ask_for_confirmation = 0; } } @@ -1609,14 +1609,14 @@ static void MENU_Key_MENU(const bool key_pressed, const bool key_held) #endif } - g_flag_AcceptSetting = true; + g_flag_accept_setting = true; g_is_in_sub_menu = false; g_ask_for_confirmation = 0; } } else { - g_flag_AcceptSetting = true; + g_flag_accept_setting = true; g_is_in_sub_menu = false; } } @@ -1653,7 +1653,7 @@ static void MENU_Key_STAR(const bool key_pressed, const bool key_held) if (++g_edit_index >= 10) { // exit edit - g_flag_AcceptSetting = false; + g_flag_accept_setting = false; g_ask_for_confirmation = 1; } @@ -1860,7 +1860,7 @@ void MENU_ProcessKeys(key_code_t Key, bool key_pressed, bool key_held) g_edit[g_edit_index] = ' '; if (++g_edit_index >= 10) { // exit edit - g_flag_AcceptSetting = false; + g_flag_accept_setting = false; g_ask_for_confirmation = 1; } g_request_display_screen = DISPLAY_MENU; diff --git a/board.c b/board.c index 35ecb8a..536197c 100644 --- a/board.c +++ b/board.c @@ -777,18 +777,18 @@ void BOARD_EEPROM_load(void) #endif } -void BOARD_EEPROM_LoadMoreSettings(void) +void BOARD_EEPROM_LoadCalibration(void) { // uint8_t Mic; - EEPROM_ReadBuffer(0x1EC0, g_eeprom_1EC0_0, 8); - memmove(g_eeprom_1EC0_1, g_eeprom_1EC0_0, 8); - memmove(g_eeprom_1EC0_2, g_eeprom_1EC0_0, 8); - memmove(g_eeprom_1EC0_3, g_eeprom_1EC0_0, 8); + EEPROM_ReadBuffer(0x1EC0, g_eeprom_rssi_calib[3], 8); + memcpy(g_eeprom_rssi_calib[4], g_eeprom_rssi_calib[3], 8); + memcpy(g_eeprom_rssi_calib[5], g_eeprom_rssi_calib[3], 8); + memcpy(g_eeprom_rssi_calib[6], g_eeprom_rssi_calib[3], 8); - // 8 * 16-bit values - EEPROM_ReadBuffer(0x1EC0, g_eeprom_rssi_calib[0], 8); - EEPROM_ReadBuffer(0x1EC8, g_eeprom_rssi_calib[1], 8); + EEPROM_ReadBuffer(0x1EC8, g_eeprom_rssi_calib[0], 8); + memcpy(g_eeprom_rssi_calib[1], g_eeprom_rssi_calib[0], 8); + memcpy(g_eeprom_rssi_calib[2], g_eeprom_rssi_calib[0], 8); EEPROM_ReadBuffer(0x1F40, g_battery_calibration, 12); if (g_battery_calibration[0] >= 5000) @@ -822,8 +822,8 @@ void BOARD_EEPROM_LoadMoreSettings(void) EEPROM_ReadBuffer(0x1F88, &Misc, 8); g_eeprom.BK4819_xtal_freq_low = (Misc.BK4819_XtalFreqLow >= -1000 && Misc.BK4819_XtalFreqLow <= 1000) ? Misc.BK4819_XtalFreqLow : 0; - g_eeprom_1F8A = Misc.EEPROM_1F8A & 0x01FF; - g_eeprom_1F8C = Misc.EEPROM_1F8C & 0x01FF; +// g_eeprom_1F8A = Misc.EEPROM_1F8A & 0x01FF; +// g_eeprom_1F8C = Misc.EEPROM_1F8C & 0x01FF; g_eeprom.volume_gain = (Misc.volume_gain < 64) ? Misc.volume_gain : 58; g_eeprom.dac_gain = (Misc.dac_gain < 16) ? Misc.dac_gain : 8; diff --git a/board.h b/board.h index 47c7da2..b712c97 100644 --- a/board.h +++ b/board.h @@ -26,7 +26,7 @@ void BOARD_ADC_Init(void); void BOARD_ADC_GetBatteryInfo(uint16_t *pVoltage, uint16_t *pCurrent); void BOARD_Init(void); void BOARD_EEPROM_load(void); -void BOARD_EEPROM_LoadMoreSettings(void); +void BOARD_EEPROM_LoadCalibration(void); uint32_t BOARD_fetchChannelFrequency(const int channel); unsigned int BOARD_fetchChannelStepSetting(const int channel); void BOARD_fetchChannelName(char *s, const int channel); diff --git a/firmware.bin b/firmware.bin index 3cac966..1269404 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index fc0916f..abb68d4 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/functions.c b/functions.c index c3fd8be..3274ce8 100644 --- a/functions.c +++ b/functions.c @@ -70,10 +70,10 @@ void FUNCTION_Init(void) g_flag_tail_tone_elimination_complete = false; g_tail_tone_elimination_count_down_10ms = 0; - g_found_CTCSS = false; - g_found_CDCSS = false; - g_found_CTCSS_count_down_10ms = 0; - g_found_CDCSS_count_down_10ms = 0; + g_found_ctcss = false; + g_found_cdcss = false; + g_found_ctcss_count_down_10ms = 0; + g_found_cdcss_count_down_10ms = 0; g_end_of_rx_detected_maybe = false; #ifdef ENABLE_NOAA diff --git a/main.c b/main.c index 8cf14fa..c700c01 100644 --- a/main.c +++ b/main.c @@ -92,7 +92,7 @@ void Main(void) BOARD_EEPROM_load(); - BOARD_EEPROM_LoadMoreSettings(); + BOARD_EEPROM_LoadCalibration(); RADIO_ConfigureChannel(0, VFO_CONFIGURE_RELOAD); RADIO_ConfigureChannel(1, VFO_CONFIGURE_RELOAD); diff --git a/misc.c b/misc.c index 019bde6..e95c603 100644 --- a/misc.c +++ b/misc.c @@ -124,15 +124,10 @@ uint32_t g_custom_aes_key[4]; bool g_has_custom_aes_key; uint32_t g_challenge[4]; -uint8_t g_eeprom_1EC0_0[8]; -uint8_t g_eeprom_1EC0_1[8]; -uint8_t g_eeprom_1EC0_2[8]; -uint8_t g_eeprom_1EC0_3[8]; +uint16_t g_eeprom_rssi_calib[7][4]; -uint16_t g_eeprom_rssi_calib[2][4]; - -uint16_t g_eeprom_1F8A; -uint16_t g_eeprom_1F8C; +//uint16_t g_eeprom_1F8A; +//uint16_t g_eeprom_1F8C; uint8_t g_user_channel_attributes[FREQ_CHANNEL_LAST + 1]; @@ -156,23 +151,18 @@ volatile bool g_tx_timeout_reached; volatile uint16_t g_tail_tone_elimination_count_down_10ms; -bool g_scan_pause_mode; -volatile bool g_scan_schedule_scan_listen = true; -volatile uint16_t g_scan_pause_delay_in_10ms; -scan_state_dir_t g_scan_state_dir; - #ifdef ENABLE_NOAA volatile uint16_t g_noaa_count_down_10ms; #endif bool g_enable_speaker; -uint8_t g_key_input_count_down = 0; +uint8_t g_key_input_count_down; uint8_t g_key_lock_count_down_500ms; uint8_t g_rtte_count_down; bool g_password_locked; uint8_t g_update_status; -uint8_t g_found_CTCSS; -uint8_t g_found_CDCSS; +uint8_t g_found_ctcss; +uint8_t g_found_cdcss; bool g_end_of_rx_detected_maybe; int16_t g_vfo_rssi[2]; @@ -197,14 +187,14 @@ bool g_request_save_settings; #endif bool g_flag_prepare_tx; -bool g_flag_AcceptSetting; +bool g_flag_accept_setting; bool g_flag_refresh_menu; -bool g_flag_SaveVfo; -bool g_flag_SaveSettings; +bool g_flag_save_vfo; +bool g_flag_save_settings; bool g_flag_save_channel; #ifdef ENABLE_FMRADIO - bool g_flag_SaveFM; + bool g_flag_save_fm; #endif bool g_cdcss_lost; uint8_t g_cdcss_code_type; @@ -217,8 +207,10 @@ bool g_cxcss_tail_found; uint16_t g_vox_pause_count_down; #endif bool g_squelch_lost; + uint8_t g_flash_light_state; volatile uint16_t g_flash_light_blink_counter; + bool g_flag_end_tx; uint16_t g_low_batteryCountdown; reception_mode_t g_rx_reception_mode; @@ -228,6 +220,10 @@ uint8_t g_scan_restore_channel; scan_next_chan_t g_scan_current_scan_list; uint32_t g_scan_restore_frequency; bool g_scan_keep_frequency; +bool g_scan_pause_mode; +volatile bool g_scan_schedule_scan_listen = true; +volatile uint16_t g_scan_pause_delay_in_10ms; +scan_state_dir_t g_scan_state_dir; bool g_rx_vfo_is_active; #ifdef ENABLE_ALARM @@ -247,8 +243,8 @@ bool g_update_display; bool g_unhide_hidden = false; volatile bool g_next_time_slice; -volatile uint8_t g_found_CDCSS_count_down_10ms; -volatile uint8_t g_found_CTCSS_count_down_10ms; +volatile uint8_t g_found_cdcss_count_down_10ms; +volatile uint8_t g_found_ctcss_count_down_10ms; #ifdef ENABLE_VOX volatile uint16_t g_vox_stop_count_down_10ms; #endif diff --git a/misc.h b/misc.h index 44ffb05..fde40b7 100644 --- a/misc.h +++ b/misc.h @@ -206,15 +206,11 @@ extern uint32_t g_custom_aes_key[4]; extern bool g_has_custom_aes_key; extern uint32_t g_challenge[4]; -extern uint8_t g_eeprom_1EC0_0[8]; -extern uint8_t g_eeprom_1EC0_1[8]; -extern uint8_t g_eeprom_1EC0_2[8]; -extern uint8_t g_eeprom_1EC0_3[8]; +extern uint16_t g_eeprom_rssi_calib[7][4]; +//extern uint16_t g_eeprom_rssi_calib[2][4]; -extern uint16_t g_eeprom_rssi_calib[2][4]; - -extern uint16_t g_eeprom_1F8A; -extern uint16_t g_eeprom_1F8C; +//extern uint16_t g_eeprom_1F8A; +//extern uint16_t g_eeprom_1F8C; extern uint8_t g_user_channel_attributes[207]; @@ -238,11 +234,6 @@ extern volatile bool g_tx_timeout_reached; extern volatile uint16_t g_tail_tone_elimination_count_down_10ms; -extern bool g_scan_pause_mode; -extern volatile bool g_scan_schedule_scan_listen; -extern volatile uint16_t g_scan_pause_delay_in_10ms; -extern scan_state_dir_t g_scan_state_dir; - #ifdef ENABLE_FMRADIO extern volatile uint16_t g_fm_play_count_down_10ms; #endif @@ -255,8 +246,8 @@ extern uint8_t g_key_lock_count_down_500ms; extern uint8_t g_rtte_count_down; extern bool g_password_locked; extern uint8_t g_update_status; -extern uint8_t g_found_CTCSS; -extern uint8_t g_found_CDCSS; +extern uint8_t g_found_ctcss; +extern uint8_t g_found_cdcss; extern bool g_end_of_rx_detected_maybe; extern int16_t g_vfo_rssi[2]; @@ -279,14 +270,14 @@ extern bool g_request_save_settings; #endif extern bool g_flag_prepare_tx; -extern bool g_flag_AcceptSetting; // accept menu setting +extern bool g_flag_accept_setting; // accept menu setting extern bool g_flag_refresh_menu; // refresh menu display -extern bool g_flag_SaveVfo; -extern bool g_flag_SaveSettings; +extern bool g_flag_save_vfo; +extern bool g_flag_save_settings; extern bool g_flag_save_channel; #ifdef ENABLE_FMRADIO - extern bool g_flag_SaveFM; + extern bool g_flag_save_fm; #endif extern bool g_cdcss_lost; extern uint8_t g_cdcss_code_type; @@ -310,6 +301,11 @@ extern uint8_t g_scan_restore_channel; extern scan_next_chan_t g_scan_current_scan_list; extern uint32_t g_scan_restore_frequency; extern bool g_scan_keep_frequency; +extern bool g_scan_pause_mode; +extern volatile bool g_scan_schedule_scan_listen; +extern volatile uint16_t g_scan_pause_delay_in_10ms; +extern scan_state_dir_t g_scan_state_dir; + extern bool g_rx_vfo_is_active; extern uint8_t g_alarm_tone_counter; @@ -326,8 +322,8 @@ extern bool g_unhide_hidden; #ifdef ENABLE_FMRADIO extern uint8_t g_fm_channel_position; #endif -extern volatile uint8_t g_found_CDCSS_count_down_10ms; -extern volatile uint8_t g_found_CTCSS_count_down_10ms; +extern volatile uint8_t g_found_cdcss_count_down_10ms; +extern volatile uint8_t g_found_ctcss_count_down_10ms; #ifdef ENABLE_VOX extern volatile uint16_t g_vox_stop_count_down_10ms; #endif diff --git a/radio.c b/radio.c index 38f0153..4cbac03 100644 --- a/radio.c +++ b/radio.c @@ -241,8 +241,11 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure if (configure == VFO_CONFIGURE_RELOAD || Channel >= FREQ_CHANNEL_FIRST) { - uint8_t Tmp; - uint8_t Data[8]; + uint8_t Tmp; + uint8_t Data[8]; +// t_channel channel; + +// EEPROM_ReadBuffer(Base, channel, sizeof(channel)); // *************** diff --git a/scheduler.c b/scheduler.c index d44b6e6..eec4a78 100644 --- a/scheduler.c +++ b/scheduler.c @@ -68,9 +68,9 @@ void SystickHandler(void) DECREMENT(g_noaa_count_down_10ms); #endif - DECREMENT(g_found_CDCSS_count_down_10ms); + DECREMENT(g_found_cdcss_count_down_10ms); - DECREMENT(g_found_CTCSS_count_down_10ms); + DECREMENT(g_found_ctcss_count_down_10ms); if (g_current_function == FUNCTION_FOREGROUND) DECREMENT_AND_TRIGGER(g_battery_save_count_down_10ms, g_schedule_power_save); diff --git a/settings.h b/settings.h index f14aebe..3256a0a 100644 --- a/settings.h +++ b/settings.h @@ -116,6 +116,8 @@ typedef enum mdf_display_mode_e mdf_display_mode_t; // ************************************************ +// unused bits are all '0's if the channel is used, +// unless the channel is unused, in which case all 16 bytes are 0xff typedef struct { // [0] uint32_t frequency; // @@ -126,29 +128,31 @@ typedef struct { // [9] uint8_t tx_ctcss_cdcss_code; // // [10] - uint8_t rx_ctcss_cdcss_type:4; // - uint8_t tx_ctcss_cdcss_type:4; // + uint8_t rx_ctcss_cdcss_type:2; // + uint8_t unused1:2; + uint8_t tx_ctcss_cdcss_type:2; // + uint8_t unused2:2; // [11] uint8_t tx_offset_dir:2; // - uint8_t unused1:2; + uint8_t unused3:2; uint8_t am_mode:1; // - uint8_t unused2:3; + uint8_t unused4:3; // [12] uint8_t frequency_reverse:1; // reverse repeater uint8_t channel_bandwidth:1; // wide/narrow uint8_t tx_power:2; // 0, 1 or 2 .. L, M or H uint8_t busy_channel_lockout:1; // - uint8_t unused3:3; + uint8_t unused5:3; // [13] uint8_t dtmf_decoding_enable:1; // uint8_t dtmf_ptt_id_tx_mode:3; // - uint8_t unused4:4; + uint8_t unused6:4; // [14] uint8_t step_setting:3; // - uint8_t unused5:5; + uint8_t unused7:5; // [15] uint8_t scrambler:4; // - uint8_t unused6:4; + uint8_t unused8:4; } __attribute__((packed)) t_channel; // 512 bytes @@ -197,8 +201,8 @@ typedef struct { } __attribute__((packed)) vhf_squelch[6]; // 0x1EC0 - uint16_t unknown1[4]; - uint16_t rssi[4]; + uint16_t rssi_uhf[4]; + uint16_t rssi_vhf[4]; // 0x1ED0 struct @@ -236,7 +240,7 @@ typedef struct { typedef struct { // 0x0000 - t_channel channel[200]; + t_channel channel[200]; // unused channels are set to all '0xff' // 0x0C80 t_channel vfo[14]; @@ -434,12 +438,6 @@ typedef struct { uint8_t scan_list_priority_ch1[2]; uint8_t scan_list_priority_ch2[2]; - uint8_t field29_0x26; - uint8_t field30_0x27; - - uint8_t field37_0x32; - uint8_t field38_0x33; - bool auto_keypad_lock; #if defined(ENABLE_ALARM) || defined(ENABLE_TX1750) @@ -461,12 +459,6 @@ typedef struct { char dtmf_key_up_code[16]; char dtmf_key_down_code[16]; - uint8_t field57_0x6c; - uint8_t field58_0x6d; - - uint8_t field60_0x7e; - uint8_t field61_0x7f; - char dtmf_separate_code; char dtmf_group_call_code; uint8_t dtmf_decode_response; @@ -489,11 +481,22 @@ typedef struct { uint16_t vox1_threshold; uint16_t vox0_threshold; - uint8_t field77_0x95; - uint8_t field78_0x96; - uint8_t field79_0x97; +// uint8_t field29_0x26; +// uint8_t field30_0x27; + +// uint8_t field37_0x32; +// uint8_t field38_0x33; + +// uint8_t field57_0x6c; +// uint8_t field58_0x6d; + +// uint8_t field60_0x7e; +// uint8_t field61_0x7f; + +// uint8_t field77_0x95; +// uint8_t field78_0x96; +// uint8_t field79_0x97; - uint8_t _pad[1]; } eeprom_config_t; extern eeprom_config_t g_eeprom; diff --git a/ui/main.c b/ui/main.c index f1ee89d..5b9c55f 100644 --- a/ui/main.c +++ b/ui/main.c @@ -90,7 +90,7 @@ center_line_t center_line = CENTER_LINE_NONE; #else UI_PrintStringSmall(s, 2, 0, line); #endif - + #if 1 // solid bar for (i = 0; i < bar_width; i++) @@ -311,22 +311,19 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo) // TODO: sort out all 8 values from the eeprom - #if 0 - // dBm -105 -100 -95 -90 -70 -65 -60 -55 - // RSSI 110 120 130 140 180 190 200 210 - // 0000C0 6E 00 78 00 82 00 8C 00 B4 00 BE 00 C8 00 D2 00 - // - const unsigned int band = 1; + #if 1 + const unsigned int band = g_rx_vfo->band; const int16_t level0 = g_eeprom_rssi_calib[band][0]; const int16_t level1 = g_eeprom_rssi_calib[band][1]; const int16_t level2 = g_eeprom_rssi_calib[band][2]; const int16_t level3 = g_eeprom_rssi_calib[band][3]; #else - const int16_t level0 = (-115 + 160) * 2; // dB - const int16_t level1 = ( -89 + 160) * 2; // dB - const int16_t level2 = ( -64 + 160) * 2; // dB - const int16_t level3 = ( -39 + 160) * 2; // dB + const int16_t level0 = (-115 + 160) * 2; // -115dBm + const int16_t level1 = ( -89 + 160) * 2; // -89dBm + const int16_t level2 = ( -64 + 160) * 2; // -64dBm + const int16_t level3 = ( -39 + 160) * 2; // -39dBm #endif + // create intermediate values (linear interpolation) to make better use of all the available RSSI bars const int16_t level01 = (level0 + level1) / 2; const int16_t level12 = (level1 + level2) / 2; const int16_t level23 = (level2 + level3) / 2;