diff --git a/nanovna.h b/nanovna.h index 4aaf604..65be6ca 100644 --- a/nanovna.h +++ b/nanovna.h @@ -18,7 +18,7 @@ */ #include "ch.h" -#ifdef TINYSA_F303 +//#ifdef TINYSA_F303 #ifdef TINYSA_F072 #error "Remove comment for #ifdef TINYSA_F303" #endif @@ -26,7 +26,7 @@ #define TINYSA4 #endif #define TINYSA4_PROTO -#endif +//#endif #ifdef TINYSA_F072 #ifdef TINYSA_F303 diff --git a/plot.c b/plot.c index 8828a66..111148e 100644 --- a/plot.c +++ b/plot.c @@ -1590,6 +1590,12 @@ static void trace_print_value_string( // Only used at one place } else freq += (setting.frequency_offset - FREQUENCY_SHIFT); + int negative = (freq > HALF_FREQ); + if (negative) { + freq = - freq; + *ptr2++ = '-'; + } + // For CW mode output time if (FREQ_IS_CW()) { plot_printf(ptr2, sizeof(buf2) - 9, "%.3Fs", idx*setting.actual_sweep_time_us/(float)((sweep_points - 1)*ONE_SECOND_TIME)); @@ -1602,17 +1608,11 @@ static void trace_print_value_string( // Only used at one place step = step*10; } } - int negative = (freq > HALF_FREQ); - if (negative) - freq = - freq; #ifdef TINYSA4 if (freq >= 1000000000) digits += 3; #endif - if (negative) - plot_printf(ptr2, sizeof(buf2) - 9, "-%9.*QHz", digits, freq); - else - plot_printf(ptr2, sizeof(buf2) - 9, "%9.*QHz", digits, freq); + plot_printf(ptr2, sizeof(buf2) - 9, "%9.*QHz", digits, freq); } #ifdef __LEVEL_METER__ #ifdef TINYSA4 diff --git a/ui.c b/ui.c index 235ef93..1b41f69 100644 --- a/ui.c +++ b/ui.c @@ -3302,9 +3302,30 @@ static UI_FUNCTION_ADV_CALLBACK(menu_multi_band_acb) return; } dirty = true; + freq_t old_start = get_sweep_frequency(ST_START); + freq_t old_stop = get_sweep_frequency(ST_STOP); setting.multi_band = ! setting.multi_band; redraw_request|= REDRAW_AREA | REDRAW_FREQUENCY | REDRAW_CAL_STATUS; - if (setting.multi_band) menu_push_submenu(menu_band_select); + if (setting.multi_band) { + if (setting.bands[0].end == 0) { + setting.bands[0].start = old_start; + setting.bands[0].end = old_stop; + } + menu_push_submenu(menu_band_select); + } else { + for (int i=0;i< BANDS_MAX;i++) { + if (setting.bands[i].enabled) { + set_sweep_frequency(ST_START,setting.bands[i].start); + break; + } + } + for (int i=BANDS_MAX-1;i>=0;i--) { + if (setting.bands[i].enabled) { + set_sweep_frequency(ST_STOP,setting.bands[i].end); + break; + } + } + } } static UI_FUNCTION_ADV_CALLBACK(menu_multi_trace_acb)