0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 22:31:25 +03:00
This commit is contained in:
OneOfEleven 2023-11-08 19:07:52 +00:00
parent bea0b60dcd
commit e180010e31
10 changed files with 65 additions and 49 deletions

View File

@ -75,7 +75,7 @@ ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS := 1
ENABLE_FASTER_CHANNEL_SCAN := 1 ENABLE_FASTER_CHANNEL_SCAN := 1
ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1 ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1
# Rx Signal Bar 400 B # Rx Signal Bar 400 B
ENABLE_RX_SIGNAL_BAR := 0 ENABLE_RX_SIGNAL_BAR := 1
# Tx Audio Bar 300 B # Tx Audio Bar 300 B
ENABLE_TX_AUDIO_BAR := 0 ENABLE_TX_AUDIO_BAR := 0
# Side Button Menu 300 B # Side Button Menu 300 B

View File

@ -27,7 +27,7 @@ Need to find a suitable replacement for the two jack sockets to confirm this tho
<p float="left"> <p float="left">
<img src="/images/jack_sockets_top.png" width=300 /> <img src="/images/jack_sockets_top.png" width=300 />
<img src="/images/jack_sockets_bot.png" width=300 /> <img src="/images/jack_sockets_bot.png" width=236 />
</p> </p>
# Radio performance # Radio performance

View File

@ -327,7 +327,7 @@ void AM_fix_10ms(const int vfo)
// save the corrected RSSI level // save the corrected RSSI level
#ifdef ENABLE_AM_FIX_SHOW_DATA #ifdef ENABLE_AM_FIX_SHOW_DATA
{ {
const int16_t new_rssi = rssi - rssi_gain_diff[vfo]; const int16_t new_rssi = rssi - rssi_gain_diff[vfo];
const uint16_t new_glitch = BK4819_GetGlitchIndicator(); const uint16_t new_glitch = BK4819_GetGlitchIndicator();
const uint16_t new_noise = BK4819_GetExNoiceIndicator(); const uint16_t new_noise = BK4819_GetExNoiceIndicator();

View File

@ -277,7 +277,7 @@ void ACTION_Scan(bool bRestart)
APP_channel_next(true, SCAN_STATE_DIR_FORWARD); APP_channel_next(true, SCAN_STATE_DIR_FORWARD);
g_scan_tick_10ms = 0; // go NOW g_scan_tick_10ms = 0; // go NOW
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE

View File

@ -80,7 +80,7 @@ const uint8_t orig_pga = 6; // -3dB
static void APP_process_key(const key_code_t Key, const bool key_pressed, const bool key_held); static void APP_process_key(const key_code_t Key, const bool key_pressed, const bool key_held);
static void APP_update_rssi(const int vfo) static void APP_update_rssi(const int vfo, const bool force)
{ {
int16_t rssi = BK4819_GetRSSI(); int16_t rssi = BK4819_GetRSSI();
uint8_t glitch = BK4819_GetGlitchIndicator(); uint8_t glitch = BK4819_GetGlitchIndicator();
@ -92,7 +92,7 @@ static void APP_update_rssi(const int vfo)
rssi -= rssi_gain_diff[vfo]; rssi -= rssi_gain_diff[vfo];
#endif #endif
if (g_current_rssi[vfo] == rssi) if (g_current_rssi[vfo] == rssi && !force)
return; // no change return; // no change
g_current_rssi[vfo] = rssi; g_current_rssi[vfo] = rssi;
@ -100,6 +100,8 @@ static void APP_update_rssi(const int vfo)
g_current_noise[vfo] = noise; g_current_noise[vfo] = noise;
UI_update_rssi(rssi, glitch, noise, vfo); UI_update_rssi(rssi, glitch, noise, vfo);
g_update_rssi = false;
} }
static void APP_check_for_new_receive(void) static void APP_check_for_new_receive(void)
@ -149,7 +151,7 @@ static void APP_check_for_new_receive(void)
if (g_rx_reception_mode != RX_MODE_NONE) if (g_rx_reception_mode != RX_MODE_NONE)
goto done; goto done;
g_scan_tick_10ms = scan_pause_chan_10ms; g_scan_tick_10ms = scan_pause_chan_10ms;
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
} }
@ -163,15 +165,15 @@ done:
#ifdef ENABLE_MDC1200 #ifdef ENABLE_MDC1200
{ // reset the FSK receiver { // reset the FSK receiver
//const uint16_t fsk_reg59 = BK4819_read_reg(0x59) & ~((1u << 15) | (1u << 14) | (1u << 12) | (1u << 11)); //const uint16_t fsk_reg59 = BK4819_read_reg(0x59) & ~((1u << 15) | (1u << 14) | (1u << 12) | (1u << 11));
// BK4819_enable_mdc1200_rx(true); //BK4819_enable_mdc1200_rx(true);
//BK4819_write_reg(0x59, (1u << 15) | (1u << 14) | fsk_reg59); //BK4819_write_reg(0x59, (1u << 15) | (1u << 14) | fsk_reg59);
//BK4819_write_reg(0x59, (1u << 12) | fsk_reg59); //BK4819_write_reg(0x59, (1u << 12) | fsk_reg59);
} }
#endif #endif
} }
APP_update_rssi(g_rx_vfo_num);
g_update_rssi = true; APP_update_rssi(g_rx_vfo_num, true);
// } g_update_rssi = true;
} }
static void APP_process_new_receive(void) static void APP_process_new_receive(void)
@ -259,6 +261,9 @@ static void APP_process_rx(void)
{ {
end_of_rx_mode_t Mode = END_OF_RX_MODE_NONE; end_of_rx_mode_t Mode = END_OF_RX_MODE_NONE;
// APP_update_rssi(g_rx_vfo_num);
g_update_rssi = true;
if (g_flag_tail_tone_elimination_complete) if (g_flag_tail_tone_elimination_complete)
{ {
Mode = END_OF_RX_MODE_END; Mode = END_OF_RX_MODE_END;
@ -274,7 +279,7 @@ static void APP_process_rx(void)
case SCAN_RESUME_TIME: // stay only for a limited time case SCAN_RESUME_TIME: // stay only for a limited time
break; break;
case SCAN_RESUME_CARRIER: // stay untill the carrier goes away case SCAN_RESUME_CARRIER: // stay untill the carrier goes away
g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50; g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50;
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
break; break;
case SCAN_RESUME_STOP: // stop scan once we find any signal case SCAN_RESUME_STOP: // stop scan once we find any signal
@ -438,7 +443,7 @@ Skip:
case SCAN_RESUME_TIME: // stay only for a limited time case SCAN_RESUME_TIME: // stay only for a limited time
break; break;
case SCAN_RESUME_CARRIER: // stay untill the carrier goes away case SCAN_RESUME_CARRIER: // stay untill the carrier goes away
g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50; g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50;
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
break; break;
case SCAN_RESUME_STOP: // stop scan once we find any signal case SCAN_RESUME_STOP: // stop scan once we find any signal
@ -484,18 +489,18 @@ bool APP_start_listening(void)
case SCAN_RESUME_TIME: case SCAN_RESUME_TIME:
if (!g_scan_pause_time_mode) if (!g_scan_pause_time_mode)
{ {
g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50; g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50;
g_scan_pause_time_mode = true; g_scan_pause_time_mode = true;
} }
break; break;
case SCAN_RESUME_CARRIER: case SCAN_RESUME_CARRIER:
g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50; g_scan_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50;
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
break; break;
case SCAN_RESUME_STOP: case SCAN_RESUME_STOP:
g_scan_tick_10ms = 0; g_scan_tick_10ms = 0;
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
break; break;
} }
@ -534,8 +539,8 @@ bool APP_start_listening(void)
// else // else
{ {
BK4819_write_reg(0x48, BK4819_write_reg(0x48,
(11u << 12) | // ??? .. 0 ~ 15, doesn't seem to make any difference (11u << 12) | // ??? .. 0 ~ 15, doesn't seem to make any difference
( 0u << 10) | // AF Rx Gain-1 ( 0u << 10) | // AF Rx Gain-1
(g_eeprom.calib.volume_gain << 4) | // AF Rx Gain-2 (g_eeprom.calib.volume_gain << 4) | // AF Rx Gain-2
(g_eeprom.calib.dac_gain << 0)); // AF DAC Gain (after Gain-1 and Gain-2) (g_eeprom.calib.dac_gain << 0)); // AF DAC Gain (after Gain-1 and Gain-2)
} }
@ -558,15 +563,13 @@ bool APP_start_listening(void)
AUDIO_set_mod_mode(g_rx_vfo->channel.mod_mode); AUDIO_set_mod_mode(g_rx_vfo->channel.mod_mode);
#endif #endif
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
UART_printf("mode %u\r\n", g_rx_vfo->channel.mod_mode);
#endif
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
if (g_current_display_screen != DISPLAY_MENU) if (g_current_display_screen != DISPLAY_MENU)
GUI_SelectNextDisplay(DISPLAY_MAIN); GUI_SelectNextDisplay(DISPLAY_MAIN);
APP_update_rssi(g_rx_vfo_num, true);
g_update_status = true; g_update_status = true;
g_update_display = true; g_update_display = true;
@ -1069,7 +1072,7 @@ void APP_process_radio_interrupts(void)
UART_SendText("sq close\r\n"); UART_SendText("sq close\r\n");
#endif #endif
//APP_update_rssi(g_rx_vfo); //APP_update_rssi(g_rx_vfo_num, false);
g_update_rssi = true; g_update_rssi = true;
g_update_display = true; g_update_display = true;
@ -1083,7 +1086,7 @@ void APP_process_radio_interrupts(void)
UART_SendText("sq open\r\n"); UART_SendText("sq open\r\n");
#endif #endif
//APP_update_rssi(g_rx_vfo_num); //APP_update_rssi(g_rx_vfo_num, false);
g_update_rssi = true; g_update_rssi = true;
if (g_monitor_enabled) if (g_monitor_enabled)
@ -1523,7 +1526,7 @@ void APP_channel_next(const bool remember_current, const scan_state_dir_t scan_d
return; return;
} }
g_scan_tick_10ms = scan_pause_css_10ms; g_scan_tick_10ms = scan_pause_css_10ms;
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
g_rx_reception_mode = RX_MODE_NONE; g_rx_reception_mode = RX_MODE_NONE;
} }
@ -1887,7 +1890,7 @@ void APP_process_power_save(void)
g_update_rssi) g_update_rssi)
{ // go back to sleep { // go back to sleep
APP_update_rssi(g_rx_vfo_num); APP_update_rssi(g_rx_vfo_num, false);
// go back to sleep // go back to sleep
@ -2157,7 +2160,7 @@ void APP_time_slice_500ms(void)
} }
if (g_current_function != FUNCTION_POWER_SAVE && g_current_function != FUNCTION_TRANSMIT) if (g_current_function != FUNCTION_POWER_SAVE && g_current_function != FUNCTION_TRANSMIT)
APP_update_rssi(g_rx_vfo_num); APP_update_rssi(g_rx_vfo_num, false);
if (g_low_battery) if (g_low_battery)
{ {
@ -2314,6 +2317,10 @@ void APP_time_slice_10ms(void)
g_request_display_screen = DISPLAY_INVALID; g_request_display_screen = DISPLAY_INVALID;
} }
// 1of11
if (g_update_rssi)
APP_update_rssi(g_rx_vfo_num, false);
if (g_update_display) if (g_update_display)
GUI_DisplayScreen(); GUI_DisplayScreen();

View File

@ -51,20 +51,18 @@ bool g_manual_scanning;
bool scanning_paused(void) bool scanning_paused(void)
{ {
if (g_scan_state_dir != SCAN_STATE_DIR_OFF && if (g_scan_state_dir != SCAN_STATE_DIR_OFF &&
g_scan_tick_10ms > 0 && (g_scan_tick_10ms == 0 || g_scan_tick_10ms >= (400 / 10))) // 400ms
g_scan_tick_10ms <= (400 / 10)) // 400ms
{ {
return false; // busy RF scanning return true;
}
else
if (g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF &&
g_dual_watch_tick_10ms > 0 &&
g_dual_watch_tick_10ms <= (400 / 10)) // 400ms
{
return false; // busy dual watch scanning
} }
return true; if (g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF &&
(g_dual_watch_tick_10ms == 0 || g_dual_watch_tick_10ms >= (400 / 10))) // 400ms
{
return true;
}
return (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_eeprom.config.setting.dual_watch == DUAL_WATCH_OFF) ? true : false;
} }
void toggle_chan_scanlist(void) void toggle_chan_scanlist(void)

View File

@ -88,6 +88,10 @@ void AUDIO_set_mod_mode(const mod_mode_t mode)
case MOD_MODE_DSB: af_mode = BK4819_AF_BASEBAND1; break; case MOD_MODE_DSB: af_mode = BK4819_AF_BASEBAND1; break;
} }
BK4819_SetAF(af_mode); BK4819_SetAF(af_mode);
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
UART_printf("mode %u\r\n", mode);
#endif
} }
void AUDIO_PlayBeep(beep_type_t Beep) void AUDIO_PlayBeep(beep_type_t Beep)

View File

@ -96,9 +96,9 @@ void BK4819_Init(void)
( 8u << 0)); // AF DAC Gain (after Gain-1 and Gain-2) ( 8u << 0)); // AF DAC Gain (after Gain-1 and Gain-2)
// squelch mode // squelch mode
// BK4819_write_reg(0x77, 0x88EF); // rssi + noise + glitch .. RT-890 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, 0xAAEF); // rssi + glitch
// BK4819_write_reg(0x77, 0xCCEF); // rssi + noise // BK4819_write_reg(0x77, 0xCCEF); // rssi + noise
// BK4819_write_reg(0x77, 0xFFEF); // rssi // BK4819_write_reg(0x77, 0xFFEF); // rssi
@ -550,6 +550,13 @@ void BK4819_SetupSquelch(
uint8_t squelch_close_glitch_thresh, uint8_t squelch_close_glitch_thresh,
uint8_t squelch_open_glitch_thresh) uint8_t squelch_open_glitch_thresh)
{ {
// 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, 0xAAEF); // rssi + glitch
// BK4819_write_reg(0x77, 0xCCEF); // rssi + noise
// BK4819_write_reg(0x77, 0xFFEF); // rssi
// REG_70 // REG_70
// //
// <15> 0 Enable TONE1 // <15> 0 Enable TONE1
@ -590,19 +597,19 @@ void BK4819_SetupSquelch(
// 0 ~ 255 // 0 ~ 255
// //
BK4819_write_reg(0x4E, // 01 101 11 1 00000000 BK4819_write_reg(0x4E, // 01 101 11 1 00000000
// #ifndef ENABLE_FASTER_CHANNEL_SCAN #ifndef ENABLE_FASTER_CHANNEL_SCAN
// original (*) // original
(1u << 14) | // 1 ??? (1u << 14) | // 1 ???
(5u << 11) | // 5 squelch = open delay .. 0 ~ 7 (5u << 11) | // 5 squelch = open delay .. 0 ~ 7
(6u << 9) | // *3 squelch = close delay .. 0 ~ 3 (3u << 9) | // 3 squelch = close delay .. 0 ~ 3
squelch_open_glitch_thresh); // 0 ~ 255 squelch_open_glitch_thresh); // 0 ~ 255
// #else #else
// faster (but twitchier) // faster (but twitchier)
// (1u << 14) | // 1 ??? (1u << 14) | // 1 ???
// (2u << 11) | // *5 squelch = open delay .. 0 ~ 7 (2u << 11) | // 5 squelch = open delay .. 0 ~ 7
// (1u << 9) | // *3 squelch = close delay .. 0 ~ 3 (3u << 9) | // 3 squelch = close delay .. 0 ~ 3
// squelch_open_glitch_thresh); // 0 ~ 255 squelch_open_glitch_thresh); // 0 ~ 255
// #endif #endif
// REG_4F // REG_4F
// //

Binary file not shown.

Binary file not shown.