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

panadapter clean up

This commit is contained in:
OneOfEleven 2023-11-20 11:24:39 +00:00
parent bf816f2afc
commit 37ee519916
3 changed files with 17 additions and 15 deletions

Binary file not shown.

Binary file not shown.

View File

@ -39,18 +39,20 @@ bool PAN_scanning(void)
void PAN_update_min_max(void) void PAN_update_min_max(void)
{ // compute the min/max RSSI values { // compute the min/max RSSI values
int i; register unsigned int i;
register uint8_t *p = g_panadapter_rssi;
register uint8_t max_rssi = *p;
register uint8_t min_rssi = *p++;
g_panadapter_max_rssi = g_panadapter_rssi[0]; for (i = ARRAY_SIZE(g_panadapter_rssi) - 1; i > 0; i--)
g_panadapter_min_rssi = g_panadapter_rssi[0];
for (i = 1; i < (int)ARRAY_SIZE(g_panadapter_rssi); i++)
{ {
const uint8_t rssi = g_panadapter_rssi[i]; const uint8_t rssi = *p++;
if (g_panadapter_max_rssi < rssi) if (max_rssi < rssi) max_rssi = rssi;
g_panadapter_max_rssi = rssi; if (min_rssi > rssi) min_rssi = rssi;
if (g_panadapter_min_rssi > rssi)
g_panadapter_min_rssi = rssi;
} }
g_panadapter_max_rssi = max_rssi;
g_panadapter_min_rssi = min_rssi;
} }
#ifdef ENABLE_PANADAPTER_PEAK_FREQ #ifdef ENABLE_PANADAPTER_PEAK_FREQ
@ -90,20 +92,20 @@ void PAN_set_freq(void)
{ // set the frequency { // set the frequency
int32_t freq = g_tx_vfo->p_rx->frequency; int32_t freq = g_tx_vfo->p_rx->frequency;
int32_t step_size = g_tx_vfo->step_freq; int32_t step_size = g_tx_vfo->step_freq;
// limit the step size
step_size = (step_size < PANADAPTER_MIN_STEP) ? PANADAPTER_MIN_STEP : (step_size > PANADAPTER_MAX_STEP) ? PANADAPTER_MAX_STEP : step_size; step_size = (step_size < PANADAPTER_MIN_STEP) ? PANADAPTER_MIN_STEP : (step_size > PANADAPTER_MAX_STEP) ? PANADAPTER_MAX_STEP : step_size;
// if not paused on the VFO/center freq, add the bin offset (scanning)
if (g_panadapter_enabled && g_panadapter_vfo_mode <= 0 && panadapter_rssi_index >= 0) if (g_panadapter_enabled && g_panadapter_vfo_mode <= 0 && panadapter_rssi_index >= 0)
{ // panadapter mode .. add the bin offset
freq += step_size * (panadapter_rssi_index - PANADAPTER_BINS); freq += step_size * (panadapter_rssi_index - PANADAPTER_BINS);
}
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 .. no need, we're not moving far
// default front end gains
#ifdef ENABLE_AM_FIX #ifdef ENABLE_AM_FIX
// set front end gains
if (g_panadapter_vfo_mode <= 0 || g_tx_vfo->channel.mod_mode == MOD_MODE_FM) if (g_panadapter_vfo_mode <= 0 || g_tx_vfo->channel.mod_mode == MOD_MODE_FM)
BK4819_write_reg(0x13, (g_orig_lnas << 8) | (g_orig_lna << 5) | (g_orig_mixer << 3) | (g_orig_pga << 0)); BK4819_write_reg(0x13, (g_orig_lnas << 8) | (g_orig_lna << 5) | (g_orig_mixer << 3) | (g_orig_pga << 0));
else else