From 673016bdca972d5033b5b89e3475e8bbe7371522 Mon Sep 17 00:00:00 2001 From: DiSlord Date: Tue, 7 Jul 2020 19:17:56 +0300 Subject: [PATCH] Just update to master --- sa_core.c | 82 +++++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/sa_core.c b/sa_core.c index 4009446..f4e7922 100644 --- a/sa_core.c +++ b/sa_core.c @@ -928,59 +928,59 @@ extern int SI4432_offset_changed; void set_freq(int V, unsigned long freq) // translate the requested frequency into a setting of the SI4432 { - if (old_freq[V] != freq) { // Do not change HW if not needed - if (V <= 1) { - SI4432_Sel = V; - if (freq < 240000000 || freq > 960000000) { // Impossible frequency, simply ignore, should never happen. - real_old_freq[V] = freq + 1; // No idea why this is done........ - return; - } + if (old_freq[V] == freq) // Do not change HW if not needed + return; + if (V <= 1) { + SI4432_Sel = V; + if (freq < 240000000 || freq > 960000000) { // Impossible frequency, simply ignore, should never happen. + real_old_freq[V] = freq + 1; // No idea why this is done........ + return; + } #if 1 - if (setting.step_delay_mode == SD_FAST) { // If in extra fast scanning mode - int delta = freq - real_old_freq[V]; + if (setting.step_delay_mode == SD_FAST) { // If in extra fast scanning mode + int delta = freq - real_old_freq[V]; - if (real_old_freq[V] >= 480000000) // 480MHz, high band - delta = delta >> 1; - if (delta > OFFSET_LOWER_BOUND && delta < 80000) { // and requested frequency can be reached by using the offset registers + if (real_old_freq[V] >= 480000000) // 480MHz, high band + delta = delta >> 1; + if (delta > OFFSET_LOWER_BOUND && delta < 80000) { // and requested frequency can be reached by using the offset registers #if 0 - if (real_old_freq[V] >= 480000000) - shell_printf("%d: Offs %q HW %d\r\n", SI4432_Sel, (uint32_t)(real_old_freq[V]+delta*2), real_old_freq[V]); - else - shell_printf("%d: Offs %q HW %d\r\n", SI4432_Sel, (uint32_t)(real_old_freq[V]+delta*1), real_old_freq[V]); + if (real_old_freq[V] >= 480000000) + shell_printf("%d: Offs %q HW %d\r\n", SI4432_Sel, (uint32_t)(real_old_freq[V]+delta*2), real_old_freq[V]); + else + shell_printf("%d: Offs %q HW %d\r\n", SI4432_Sel, (uint32_t)(real_old_freq[V]+delta*1), real_old_freq[V]); #endif - delta = delta * 4 / 625; // = 156.25; // Calculate and set the offset register i.s.o programming a new frequency - SI4432_Write_Byte(SI4432_FREQ_OFFSET1, (uint8_t)(delta & 0xff)); - SI4432_Write_Byte(SI4432_FREQ_OFFSET2, (uint8_t)((delta >> 8) & 0x03)); - SI4432_offset_changed = true; // Signal offset changed so RSSI retrieval is delayed for frequency settling - old_freq[V] = freq; - return; - } + delta = delta * 4 / 625; // = 156.25; // Calculate and set the offset register i.s.o programming a new frequency + SI4432_Write_Byte(SI4432_FREQ_OFFSET1, (uint8_t)(delta & 0xff)); + SI4432_Write_Byte(SI4432_FREQ_OFFSET2, (uint8_t)((delta >> 8) & 0x03)); + SI4432_offset_changed = true; // Signal offset changed so RSSI retrieval is delayed for frequency settling + old_freq[V] = freq; + return; } + } #endif #ifdef __WIDE_OFFSET__ - uint32_t target_f; // Impossible to use offset so set SI4432 to new frequency - if (freq >= 480000000) { - target_f = freq + 160000; - } else { - target_f = freq + 80000; - } - SI4432_Set_Frequency(target_f); - SI4432_Write_Byte(SI4432_FREQ_OFFSET1, 0); // set offset to most negative - SI4432_Write_Byte(SI4432_FREQ_OFFSET2, 0x02); - real_old_freq[V] = target_f; + uint32_t target_f; // Impossible to use offset so set SI4432 to new frequency + if (freq >= 480000000) { + target_f = freq + 160000; + } else { + target_f = freq + 80000; + } + SI4432_Set_Frequency(target_f); + SI4432_Write_Byte(SI4432_FREQ_OFFSET1, 0); // set offset to most negative + SI4432_Write_Byte(SI4432_FREQ_OFFSET2, 0x02); + real_old_freq[V] = target_f; #else - SI4432_Set_Frequency(freq); // Impossible to use offset so set SI4432 to new frequency - SI4432_Write_Byte(SI4432_FREQ_OFFSET1, 0); // set offset to zero - SI4432_Write_Byte(SI4432_FREQ_OFFSET2, 0); - real_old_freq[V] = freq; + SI4432_Set_Frequency(freq); // Impossible to use offset so set SI4432 to new frequency + SI4432_Write_Byte(SI4432_FREQ_OFFSET1, 0); // set offset to zero + SI4432_Write_Byte(SI4432_FREQ_OFFSET2, 0); + real_old_freq[V] = freq; #endif #ifdef __ULTRA_SA__ - } else { - ADF4351_set_frequency(V-2,freq,3); + } else { + ADF4351_set_frequency(V-2,freq,3); #endif - } - old_freq[V] = freq; } + old_freq[V] = freq; } void set_switch_transmit(void) {