mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-27 13:51:25 +03:00
squelch closing when '0' fix
This commit is contained in:
parent
dbf1468757
commit
8d16e7d319
8
Makefile
8
Makefile
@ -87,7 +87,7 @@ ENABLE_SCAN_RANGES := 1
|
||||
# AM Fix 800 B
|
||||
ENABLE_AM_FIX := 1
|
||||
ENABLE_AM_FIX_SHOW_DATA := 0
|
||||
ENABLE_SQUELCH_MORE_SENSITIVE := 0
|
||||
#ENABLE_SQUELCH_MORE_SENSITIVE := 0
|
||||
ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS := 1
|
||||
ENABLE_FASTER_CHANNEL_SCAN := 1
|
||||
ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1
|
||||
@ -473,9 +473,9 @@ endif
|
||||
ifeq ($(ENABLE_AM_FIX_TEST1),1)
|
||||
CFLAGS += -DENABLE_AM_FIX_TEST1
|
||||
endif
|
||||
ifeq ($(ENABLE_SQUELCH_MORE_SENSITIVE),1)
|
||||
CFLAGS += -DENABLE_SQUELCH_MORE_SENSITIVE
|
||||
endif
|
||||
#ifeq ($(ENABLE_SQUELCH_MORE_SENSITIVE),1)
|
||||
# CFLAGS += -DENABLE_SQUELCH_MORE_SENSITIVE
|
||||
#endif
|
||||
ifeq ($(ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS),1)
|
||||
CFLAGS += -DENABLE_SQ_OPEN_WITH_UP_DN_BUTTS
|
||||
endif
|
||||
|
@ -957,6 +957,7 @@ void APP_process_radio_interrupts(void)
|
||||
// { // VOX
|
||||
// }
|
||||
|
||||
#if 0
|
||||
if (reg_c & (1u << 1))
|
||||
{ // squelch is open
|
||||
if (!g_squelch_open)
|
||||
@ -988,6 +989,7 @@ void APP_process_radio_interrupts(void)
|
||||
g_update_display = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT
|
||||
// if (((reg_c >> 12) & 3u) > 0)
|
||||
@ -1149,7 +1151,8 @@ void APP_process_radio_interrupts(void)
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
|
||||
#if 1
|
||||
if (int_bits & BK4819_REG_02_SQUELCH_CLOSED)
|
||||
{
|
||||
g_squelch_open = false;
|
||||
@ -1185,7 +1188,8 @@ void APP_process_radio_interrupts(void)
|
||||
|
||||
g_update_display = true;
|
||||
}
|
||||
*/
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_MDC1200
|
||||
MDC1200_process_rx(int_bits);
|
||||
#endif
|
||||
|
@ -433,7 +433,7 @@ void MENU_AcceptSetting(void)
|
||||
case MENU_SQL:
|
||||
g_eeprom.config.setting.squelch_level = g_sub_menu_selection;
|
||||
RADIO_ConfigureSquelch(g_tx_vfo);
|
||||
g_vfo_configure_mode = VFO_CONFIGURE;
|
||||
g_vfo_configure_mode = VFO_CONFIGURE;
|
||||
break;
|
||||
|
||||
case MENU_CHAN_SQL:
|
||||
|
@ -98,7 +98,7 @@ void BK4819_Init(void)
|
||||
|
||||
// squelch mode
|
||||
// BK4819_write_reg(0x77, 0x88EF); // rssi + noise + glitch .. RT-890
|
||||
BK4819_write_reg(0x77, 0xA8EF); // rssi + noise + glitch .. default
|
||||
// BK4819_write_reg(0x77, 0xA8EF); // rssi + noise + glitch .. default
|
||||
// BK4819_write_reg(0x77, 0xAAEF); // rssi + glitch
|
||||
// BK4819_write_reg(0x77, 0xCCEF); // rssi + noise
|
||||
// BK4819_write_reg(0x77, 0xFFEF); // rssi
|
||||
@ -676,7 +676,7 @@ void BK4819_SetupSquelch(
|
||||
//
|
||||
// <7:0> 70 RSSI threshold for Squelch = close 0.5dB/step
|
||||
//
|
||||
BK4819_write_reg(0x78, ((uint16_t)squelch_open_rssi_thresh << 8) | squelch_close_rssi_thresh);
|
||||
BK4819_write_reg(0x78, ((uint16_t)squelch_open_rssi_thresh << 8) | squelch_close_rssi_thresh);
|
||||
|
||||
BK4819_SetAF(BK4819_AF_MUTE);
|
||||
|
||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
47
radio.c
47
radio.c
@ -438,10 +438,20 @@ void RADIO_configure_channel(const unsigned int VFO, const unsigned int configur
|
||||
|
||||
void RADIO_ConfigureSquelch(vfo_info_t *p_vfo)
|
||||
{
|
||||
const unsigned int squelch_level = (p_vfo->channel.squelch_level > 0) ? p_vfo->channel.squelch_level : g_eeprom.config.setting.squelch_level;
|
||||
const unsigned int squelch_level = (p_vfo->channel.squelch_level > 0 && p_vfo->channel.squelch_level < 10) ? p_vfo->channel.squelch_level : g_eeprom.config.setting.squelch_level;
|
||||
|
||||
// note that 'noise' and 'glitch' values are inverted compared to 'rssi' values
|
||||
|
||||
// peters readings, all on 156.550
|
||||
//
|
||||
// no antenna no signal r 53 g 83 n 73
|
||||
// signal generator -100dBm signal r 114 g 0 n 17
|
||||
// signal generator -110dBm signal r 95 g 0 n 32
|
||||
// signal generator -120dBm signal r 75 g 0 n 34
|
||||
//
|
||||
// ext antenna no signal r 93~133 g 150 n 78
|
||||
// ext antenna strong signal r 123~160 g 0 n 16~18
|
||||
|
||||
if (squelch_level == 0)
|
||||
{ // squelch == 0 (off)
|
||||
p_vfo->squelch_open_rssi_thresh = 0; // 0 ~ 255
|
||||
@ -459,20 +469,20 @@ void RADIO_ConfigureSquelch(vfo_info_t *p_vfo)
|
||||
// my calibration data
|
||||
//
|
||||
// bands 4567
|
||||
// 0A 4B 53 56 59 5C 5F 62 64 66 FF FF FF FF FF FF // open rssi
|
||||
// 05 46 50 53 56 59 5C 5F 62 64 FF FF FF FF FF FF // close rssi
|
||||
// 5A 2D 29 26 23 20 1D 1A 17 14 FF FF FF FF FF FF // open noise
|
||||
// 64 30 2D 29 26 23 20 1D 1A 17 FF FF FF FF FF FF // close noise
|
||||
// 5A 14 11 0E 0B 08 03 02 02 02 FF FF FF FF FF FF // open glitch
|
||||
// 64 11 0E 0B 08 05 05 04 04 04 FF FF FF FF FF FF // close glitch
|
||||
// 0A 4B 53 56 59 5C 5F 62 64 66 FF FF FF FF FF FF // open rssi
|
||||
// 05 46 50 53 56 59 5C 5F 62 64 FF FF FF FF FF FF // close rssi
|
||||
// 5A 2D 29 26 23 20 1D 1A 17 14 FF FF FF FF FF FF // open noise
|
||||
// 64 30 2D 29 26 23 20 1D 1A 17 FF FF FF FF FF FF // close noise
|
||||
// 5A 14 11 0E 0B 08 03 02 02 02 FF FF FF FF FF FF // open glitch
|
||||
// 64 11 0E 0B 08 05 05 04 04 04 FF FF FF FF FF FF // close glitch
|
||||
//
|
||||
// bands 123
|
||||
// 32 68 6B 6E 6F 72 75 77 79 7B FF FF FF FF FF FF // open rssi
|
||||
// 28 64 67 6A 6C 6E 71 73 76 78 FF FF FF FF FF FF // close rssi
|
||||
// 41 32 2D 28 24 21 1E 1A 17 16 FF FF FF FF FF FF // open noise
|
||||
// 46 37 32 2D 28 25 22 1E 1B 19 FF FF FF FF FF FF // close noise
|
||||
// 5A 19 0F 0A 09 08 07 06 05 04 FF FF FF FF FF FF // open glitch
|
||||
// 64 1E 14 0F 0D 0C 0B 0A 09 08 FF FF FF FF FF FF // close glitch
|
||||
// 32 68 6B 6E 6F 72 75 77 79 7B FF FF FF FF FF FF // open rssi
|
||||
// 28 64 67 6A 6C 6E 71 73 76 78 FF FF FF FF FF FF // close rssi
|
||||
// 41 32 2D 28 24 21 1E 1A 17 16 FF FF FF FF FF FF // open noise
|
||||
// 46 37 32 2D 28 25 22 1E 1B 19 FF FF FF FF FF FF // close noise
|
||||
// 5A 19 0F 0A 09 08 07 06 05 04 FF FF FF FF FF FF // open glitch
|
||||
// 64 1E 14 0F 0D 0C 0B 0A 09 08 FF FF FF FF FF FF // close glitch
|
||||
|
||||
unsigned int band = (unsigned int)FREQUENCY_GetBand(p_vfo->p_rx->frequency);
|
||||
band = (band < BAND4_174MHz) ? 1 : 0;
|
||||
@ -518,21 +528,21 @@ void RADIO_ConfigureSquelch(vfo_info_t *p_vfo)
|
||||
// *********
|
||||
// ensure the 'close' threshold is lower than the 'open' threshold
|
||||
// ie, maintain a minimum level of hysteresis
|
||||
|
||||
|
||||
rssi_close = (rssi_open * 4) / 6;
|
||||
noise_close = (noise_open * 6) / 4;
|
||||
glitch_close = (glitch_open * 6) / 4;
|
||||
|
||||
|
||||
if (rssi_open < 8)
|
||||
rssi_open = 8;
|
||||
if (rssi_close > (rssi_open - 8))
|
||||
rssi_close = rssi_open - 8;
|
||||
|
||||
|
||||
if (noise_open > (127 - 4))
|
||||
noise_open = 127 - 4;
|
||||
if (noise_close < (noise_open + 4))
|
||||
noise_close = noise_open + 4;
|
||||
|
||||
|
||||
if (glitch_open > (255 - 8))
|
||||
glitch_open = 255 - 8;
|
||||
if (glitch_close < (glitch_open + 8))
|
||||
@ -540,7 +550,7 @@ void RADIO_ConfigureSquelch(vfo_info_t *p_vfo)
|
||||
|
||||
#else
|
||||
// a little more sensitive
|
||||
|
||||
/*
|
||||
rssi_open = (rssi_open * 3) / 4;
|
||||
noise_open = (noise_open * 4) / 3;
|
||||
glitch_open = (glitch_open * 4) / 3;
|
||||
@ -548,6 +558,7 @@ void RADIO_ConfigureSquelch(vfo_info_t *p_vfo)
|
||||
rssi_close = (rssi_close * 3) / 4;
|
||||
noise_close = (noise_close * 4) / 3;
|
||||
glitch_close = (glitch_close * 4) / 3;
|
||||
*/
|
||||
#endif
|
||||
|
||||
// *********
|
||||
|
79
ui/main.c
79
ui/main.c
@ -174,15 +174,24 @@ bool UI_DisplayRSSIBar(const int rssi, const unsigned int glitch, const unsigned
|
||||
{
|
||||
#ifdef SHOW_RX_TEST_VALUES
|
||||
|
||||
const unsigned int line = 3;
|
||||
char str[22];
|
||||
#ifdef ENABLE_SINGLE_VFO_CHAN
|
||||
const unsigned int line = (single_vfo >= 0 && !pan_enabled) ? 6 : 3;
|
||||
#else
|
||||
const unsigned int line = 3;
|
||||
#endif
|
||||
|
||||
char str[22];
|
||||
|
||||
#ifdef ENABLE_KEYLOCK
|
||||
if (g_eeprom.config.setting.key_lock && g_keypad_locked > 0)
|
||||
return false; // display is in use
|
||||
#endif
|
||||
|
||||
if (g_current_function == FUNCTION_TRANSMIT || g_current_display_screen != DISPLAY_MAIN || g_dtmf_call_state != DTMF_CALL_STATE_NONE)
|
||||
if (g_current_function == FUNCTION_TRANSMIT ||
|
||||
#ifdef ENABLE_DTMF_CALLING
|
||||
g_dtmf_call_state != DTMF_CALL_STATE_NONE ||
|
||||
#endif
|
||||
g_current_display_screen != DISPLAY_MAIN)
|
||||
return false; // display is in use
|
||||
|
||||
if (now)
|
||||
@ -221,12 +230,12 @@ bool UI_DisplayRSSIBar(const int rssi, const unsigned int glitch, const unsigned
|
||||
const unsigned int len = ((clamped_dBm - bar_min_dBm) * bar_width) / bar_range_dB;
|
||||
|
||||
#ifdef ENABLE_SINGLE_VFO_CHAN
|
||||
const unsigned int line = (single_vfo >= 0 && !pan_enabled) ? 6 : 3;
|
||||
const unsigned int line = (single_vfo >= 0 && !pan_enabled) ? 6 : 3;
|
||||
#else
|
||||
const unsigned int line = 3;
|
||||
const unsigned int line = 3;
|
||||
#endif
|
||||
|
||||
char s[16];
|
||||
char s[16];
|
||||
|
||||
#ifdef ENABLE_KEYLOCK
|
||||
if (g_eeprom.config.setting.key_lock && g_keypad_locked > 0)
|
||||
@ -279,12 +288,15 @@ void UI_update_rssi(const int rssi, const unsigned int glitch, const unsigned in
|
||||
|
||||
if (g_center_line == CENTER_LINE_RSSI)
|
||||
{ // large RSSI dBm, S-point, bar level
|
||||
|
||||
const int rssi_level = (g_tx_vfo->channel_attributes.band < 3) ? rssi + rssi_offset_band_123 : rssi + rssi_offset_band_4567;
|
||||
|
||||
//if (g_current_function == FUNCTION_RECEIVE && g_squelch_open)
|
||||
if (g_current_function == FUNCTION_RECEIVE)
|
||||
UI_DisplayRSSIBar(rssi_level, glitch, noise, true);
|
||||
#ifdef SHOW_RX_TEST_VALUES
|
||||
if (g_current_function != FUNCTION_TRANSMIT)
|
||||
UI_DisplayRSSIBar(rssi, glitch, noise, true);
|
||||
#else
|
||||
const int rssi_level = (g_tx_vfo->channel_attributes.band < 3) ? rssi + rssi_offset_band_123 : rssi + rssi_offset_band_4567;
|
||||
//if (g_current_function == FUNCTION_RECEIVE && g_squelch_open)
|
||||
if (g_current_function == FUNCTION_RECEIVE)
|
||||
UI_DisplayRSSIBar(rssi_level, glitch, noise, true);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef ENABLE_SINGLE_VFO_CHAN
|
||||
@ -585,13 +597,22 @@ void UI_DisplayCenterLine(void)
|
||||
#endif
|
||||
|
||||
// show the RX RSSI dBm, S-point and signal strength bar graph
|
||||
if (rx && g_eeprom.config.setting.enable_rssi_bar)
|
||||
{
|
||||
const int rssi_level = (g_tx_vfo->channel_attributes.band < 3) ? g_current_rssi[g_rx_vfo_num] + rssi_offset_band_123 : g_current_rssi[g_rx_vfo_num] + rssi_offset_band_4567;
|
||||
g_center_line = CENTER_LINE_RSSI;
|
||||
UI_DisplayRSSIBar(rssi_level, g_current_glitch[g_rx_vfo_num], g_current_noise[g_rx_vfo_num], false);
|
||||
}
|
||||
else
|
||||
#ifdef SHOW_RX_TEST_VALUES
|
||||
if (g_eeprom.config.setting.enable_rssi_bar)
|
||||
{
|
||||
g_center_line = CENTER_LINE_RSSI;
|
||||
UI_DisplayRSSIBar(g_current_rssi[g_rx_vfo_num], g_current_glitch[g_rx_vfo_num], g_current_noise[g_rx_vfo_num], false);
|
||||
}
|
||||
else
|
||||
#else
|
||||
if (rx && g_eeprom.config.setting.enable_rssi_bar)
|
||||
{
|
||||
const int rssi_level = (g_tx_vfo->channel_attributes.band < 3) ? g_current_rssi[g_rx_vfo_num] + rssi_offset_band_123 : g_current_rssi[g_rx_vfo_num] + rssi_offset_band_4567;
|
||||
g_center_line = CENTER_LINE_RSSI;
|
||||
UI_DisplayRSSIBar(rssi_level, g_current_glitch[g_rx_vfo_num], g_current_noise[g_rx_vfo_num], false);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
||||
if (rx || g_current_function == FUNCTION_FOREGROUND || g_current_function == FUNCTION_POWER_SAVE)
|
||||
{
|
||||
@ -773,7 +794,7 @@ const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALA
|
||||
strcpy(str, "RX");
|
||||
else
|
||||
{
|
||||
const unsigned int squelch_level = (p_vfo->channel.squelch_level > 0) ? p_vfo->channel.squelch_level : g_eeprom.config.setting.squelch_level;
|
||||
const unsigned int squelch_level = (p_vfo->channel.squelch_level > 0 && p_vfo->channel.squelch_level < 10) ? p_vfo->channel.squelch_level : g_eeprom.config.setting.squelch_level;
|
||||
sprintf(str, "Q%u", squelch_level);
|
||||
#ifdef ENABLE_SMALL_BOLD
|
||||
bold = false;
|
||||
@ -869,7 +890,7 @@ const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALA
|
||||
#ifdef ENABLE_SHOW_FREQ_IN_CHAN
|
||||
UI_PrintString(str, x, 0, y, 8);
|
||||
|
||||
if (IS_FREQ_CHANNEL(scrn_chan) && freq_in_channel <= USER_CHANNEL_LAST)
|
||||
if (freq_in_channel <= USER_CHANNEL_LAST)
|
||||
{
|
||||
SETTINGS_fetch_channel_name(str, freq_in_channel);
|
||||
if (str[0] == 0)
|
||||
@ -881,7 +902,23 @@ const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALA
|
||||
#else
|
||||
UI_PrintString(str, x, 0, y + 1, 8);
|
||||
#endif
|
||||
/*
|
||||
#ifdef SHOW_RX_TEST_VALUES
|
||||
{
|
||||
const uint8_t ro = (BK4819_read_reg(0x78) >> 8) & 0xff;
|
||||
const uint8_t rc = BK4819_read_reg(0x78) & 0xff;
|
||||
|
||||
const uint8_t no = BK4819_read_reg(0x4F) & 0x7f;
|
||||
const uint8_t nc = (BK4819_read_reg(0x4F) >> 8) & 0x7f;
|
||||
|
||||
const uint8_t go = BK4819_read_reg(0x4E) & 0xff;
|
||||
const uint8_t gc = BK4819_read_reg(0x4D) & 0xff;
|
||||
|
||||
sprintf(str, "%02X %02X %02X %02X %02X %02X", ro, rc, no, nc, go, gc);
|
||||
UI_PrintStringSmall(str, 0, 0, y + 3);
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user