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

airband freq scan remains in picks 1st/2nd half

This commit is contained in:
OneOfEleven 2023-11-05 20:13:08 +00:00
parent 626c0030a8
commit b438d7a903
5 changed files with 39 additions and 19 deletions

View File

@ -104,10 +104,10 @@ static const t_gain_table gain_table[] =
{0x005E, -50}, // 1 .. 0 2 3 6 .. -33dB -14dB 0dB -3dB .. -50dB {0x005E, -50}, // 1 .. 0 2 3 6 .. -33dB -14dB 0dB -3dB .. -50dB
{0x015E, -47}, // 2 .. 1 2 3 6 .. -30dB -14dB 0dB -3dB .. -47dB {0x015E, -47}, // 2 .. 1 2 3 6 .. -30dB -14dB 0dB -3dB .. -47dB
{0x025E, -41}, // 3 .. 2 2 3 6 .. -24dB -14dB 0dB -3dB .. -41dB {0x025E, -41}, // 3 .. 2 2 3 6 .. -24dB -14dB 0dB -3dB .. -41dB
{0x035E, -17} // 4 .. 3 2 3 6 .. 0dB -14dB 0dB -3dB .. -17dB original {0x035E, -17} // 4 .. 3 2 3 6 .. 0dB -14dB 0dB -3dB .. -17dB
}; };
static const unsigned int original_index = 3; static const unsigned int original_index = 0;
#else #else
{0x0000, -98}, // 1 .. 0 0 0 0 .. -33dB -24dB -8dB -33dB .. -98dB {0x0000, -98}, // 1 .. 0 0 0 0 .. -33dB -24dB -8dB -33dB .. -98dB

View File

@ -647,11 +647,19 @@ void APP_stop_scan(void)
static void APP_next_freq(void) static void APP_next_freq(void)
{ {
uint32_t freq = g_rx_vfo->freq_config_rx.frequency; uint32_t freq = g_tx_vfo->freq_config_rx.frequency;
const uint32_t step = g_rx_vfo->step_freq; const uint32_t step = g_tx_vfo->step_freq;
const frequency_band_t band = FREQUENCY_GetBand(freq); const frequency_band_t band = FREQUENCY_GetBand(freq);
const uint32_t upper = FREQ_BAND_TABLE[band].upper; uint32_t upper = FREQ_BAND_TABLE[band].upper;
const uint32_t lower = FREQ_BAND_TABLE[band].lower; uint32_t lower = FREQ_BAND_TABLE[band].lower;
if (band == BAND2_108MHz)
{ // air band
if (freq < 11800000)
upper = 11800000; // lower airband half
else
lower = 11800000; // upper airband half
}
#ifdef ENABLE_SCAN_IGNORE_LIST #ifdef ENABLE_SCAN_IGNORE_LIST
do { do {
@ -671,9 +679,9 @@ static void APP_next_freq(void)
} while (FI_freq_ignored(freq) >= 0); } while (FI_freq_ignored(freq) >= 0);
#endif #endif
g_rx_vfo->freq_in_channel = 0xff; g_tx_vfo->freq_in_channel = 0xff;
g_rx_vfo->freq_config_rx.frequency = freq; g_tx_vfo->freq_config_rx.frequency = freq;
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
// UART_printf("APP_next_freq %u %u\r\n", freq, new_band); // UART_printf("APP_next_freq %u %u\r\n", freq, new_band);
@ -682,8 +690,8 @@ static void APP_next_freq(void)
#if 0 #if 0
// original slower method // original slower method
RADIO_ApplyOffset(g_rx_vfo, false); RADIO_ApplyOffset(g_tx_vfo, false);
RADIO_ConfigureSquelchAndOutputPower(g_rx_vfo); RADIO_ConfigureSquelchAndOutputPower(g_tx_vfo);
RADIO_setup_registers(true); RADIO_setup_registers(true);
@ -696,10 +704,11 @@ static void APP_next_freq(void)
#else #else
// don't need to go through all the other stuff .. speed things up !! // don't need to go through all the other stuff .. speed things up !!
// RADIO_ApplyOffset(g_rx_vfo, false); BK4819_set_rf_frequency(g_tx_vfo->freq_config_rx.frequency, true);
BK4819_set_rf_filter_path(g_tx_vfo->freq_config_rx.frequency);
BK4819_set_rf_frequency(g_rx_vfo->freq_config_rx.frequency, true); RADIO_ApplyOffset(g_tx_vfo, false);
BK4819_set_rf_filter_path(g_rx_vfo->freq_config_rx.frequency); RADIO_ConfigureSquelchAndOutputPower(g_tx_vfo);
#ifdef ENABLE_FASTER_CHANNEL_SCAN #ifdef ENABLE_FASTER_CHANNEL_SCAN
//g_scan_pause_tick_10ms = 10; // 100ms //g_scan_pause_tick_10ms = 10; // 100ms

View File

@ -1004,8 +1004,16 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t directio
uint32_t freq = g_tx_vfo->freq_config_rx.frequency; uint32_t freq = g_tx_vfo->freq_config_rx.frequency;
const uint32_t step = g_tx_vfo->step_freq; const uint32_t step = g_tx_vfo->step_freq;
const frequency_band_t band = FREQUENCY_GetBand(freq); const frequency_band_t band = FREQUENCY_GetBand(freq);
const uint32_t upper = FREQ_BAND_TABLE[band].upper; uint32_t upper = FREQ_BAND_TABLE[band].upper;
const uint32_t lower = FREQ_BAND_TABLE[band].lower; uint32_t lower = FREQ_BAND_TABLE[band].lower;
if (band == BAND2_108MHz)
{ // air band
if (freq < 11800000)
upper = 11800000; // lower airband half
else
lower = 11800000; // upper airband half
}
freq += step * direction; freq += step * direction;
@ -1015,7 +1023,7 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t directio
while (freq < lower) while (freq < lower)
freq += upper - lower; freq += upper - lower;
if (band == BAND2_108MHz) // air band uses set channels. so round to those channels if (band == BAND2_108MHz) // air band uses set channels
freq = lower + ((((freq - lower) + (step / 2)) / step) * step); freq = lower + ((((freq - lower) + (step / 2)) / step) * step);
if (FREQUENCY_rx_freq_check(freq) < 0) if (FREQUENCY_rx_freq_check(freq) < 0)
@ -1026,8 +1034,6 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t directio
g_tx_vfo->freq_config_rx.frequency = freq; g_tx_vfo->freq_config_rx.frequency = freq;
RADIO_ApplyOffset(g_tx_vfo, false);
// find the first channel that contains this frequency .. currently takes too long // find the first channel that contains this frequency .. currently takes too long
// //
//if (!key_held && key_pressed) //if (!key_held && key_pressed)
@ -1037,6 +1043,9 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t directio
g_tx_vfo->freq_in_channel = 0xff; g_tx_vfo->freq_in_channel = 0xff;
#if 0 #if 0
RADIO_ApplyOffset(g_tx_vfo, false);
RADIO_ConfigureSquelchAndOutputPower(g_tx_vfo);
// original slow method // original slow method
g_request_save_channel = 1; g_request_save_channel = 1;
#else #else
@ -1053,12 +1062,14 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t directio
g_manual_scanning = true; g_manual_scanning = true;
g_monitor_enabled = true; g_monitor_enabled = true;
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
// APP_start_listening();
} }
#endif #endif
BK4819_set_rf_frequency(freq, true); // set the VCO/PLL BK4819_set_rf_frequency(freq, true); // set the VCO/PLL
BK4819_set_rf_filter_path(freq); // set the proper LNA/PA filter path BK4819_set_rf_filter_path(freq); // set the proper LNA/PA filter path
RADIO_ApplyOffset(g_tx_vfo, false);
RADIO_ConfigureSquelchAndOutputPower(g_tx_vfo);
#endif #endif
return; return;

Binary file not shown.

Binary file not shown.