DIrect start/stop and more backup

Speed-test
erikkaashoek 4 years ago
parent ac759f9fe2
commit 8d3c9d2c2d

@ -131,10 +131,19 @@ static THD_FUNCTION(Thread1, arg)
while (1) {
// START_PROFILE
if (sweep_mode&(SWEEP_ENABLE|SWEEP_ONCE)) {
// if (dirty)
backup.frequency0 = setting.frequency0;
backup.frequency1 = setting.frequency1;
completed = sweep(true);
if (setting.auto_attenuation)
backup.attenuation = 0;
else
backup.attenuation = setting.attenuate_x2+1;
if (setting.auto_reflevel || setting.unit != U_DBM)
backup.reflevel = 0;
else
backup.reflevel = setting.reflevel + 140;
completed = sweep(true);
sweep_mode&=~SWEEP_ONCE;
} else if (sweep_mode & SWEEP_SELFTEST) {
// call from lowest level to save stack space
@ -925,6 +934,10 @@ config_t config = {
#endif
.sweep_voltage = 3.3,
.switch_offset = 0.0,
#ifdef TINYSA4
.direct_start = 9650000000UL,
.direct_stop = 9850000000UL,
#endif
};
//properties_t current_props;
@ -2454,13 +2467,24 @@ int main(void)
if (caldata_recall(0) == -1) {
load_LCD_properties();
}
{backup_t b = backup;
if (backup.frequency0 != 0 || backup.frequency1 != 0) {
setting.frequency0 = backup.frequency0;
setting.frequency1 = backup.frequency1;
update_frequencies();
if (backup.attenuation == 0)
set_auto_attenuation();
else {
set_attenuation((backup.attenuation - 1)/2.0);
}
if (backup.reflevel == 0)
set_auto_reflevel(true);
else {
set_auto_reflevel(false);
user_set_reflevel(((float)backup.reflevel)-140.0);
}
}
}
set_refer_output(-1);
// ui_mode_menu(); // Show menu when autostarting mode
ui_mode_normal();

@ -28,14 +28,14 @@
#define TINYSA4_PROTO
#endif
//#ifdef TINYSA_F072
#ifdef TINYSA_F072
#ifdef TINYSA_F303
#error "Remove comment for #ifdef TINYSA_F072"
#endif
#ifndef TINYSA3
#define TINYSA3
#endif
//#endif
#endif
// Need enable HAL_USE_SPI in halconf.h
#define __USE_DISPLAY_DMA__
@ -129,8 +129,8 @@
//#define LOW_MAX_FREQ 800000000ULL
#define MIN_BELOW_LO 550000000ULL
#ifdef __NEW_SWITCHES__
#define DIRECT_START 965000000ULL
#define DIRECT_STOP 985000000ULL
#define DIRECT_START config.direct_start
#define DIRECT_STOP config.direct_stop
#endif
#endif
/*
@ -455,9 +455,17 @@ extern void tlv320aic3204_select(int channel);
#endif
#pragma pack(push)
#pragma pack(1)
typedef struct {
freq_t frequency0, frequency1;
uint32_t frequency0, frequency1;
uint32_t attenuation;
int32_t reflevel;
// uint8_t RBW;
// uint8_t mode;
} backup_t;
#pragma pack(pop)
#define backup (*(backup_t *)0x40002850) // backup registers 5 * 32 bits
@ -696,6 +704,8 @@ typedef struct config {
#endif
#ifdef __ULTRA__
freq_t ultra_threshold;
freq_t direct_start;
freq_t direct_stop;
int8_t ultra;
#endif
uint8_t _mode;

@ -438,6 +438,10 @@ enum {
KM_NF,
#endif
KM_LINEAR_SCALE,
#ifdef TINYSA4
KM_DIRECT_START,
KM_DIRECT_STOP,
#endif
KM_NONE // always at enum end
};
@ -502,6 +506,10 @@ static const struct {
[KM_NF] = {keypads_plusmin , "NOISE\nFIGURE"}, // noise figure of tinySA
#endif
[KM_LINEAR_SCALE] = {keypads_plusmin , "SCALE"}, // scale for linear units
#ifdef TINYSA4
[KM_DIRECT_START] = {keypads_freq , "DIRECT\nSTART"}, // KM_DIRECT_START
[KM_DIRECT_STOP] = {keypads_freq , "DIRECT\nSTOP"}, // KM_DIRECT_STOP
#endif
};
#if 0 // Not used
@ -2695,6 +2703,8 @@ static const menuitem_t menu_settings4[] =
#endif
{ MT_ADV_CALLBACK, 0, "LINEAR\nAVERAGING", menu_linear_averaging_acb},
// { MT_SUBMENU, 0, S_RARROW" MORE", menu_settings3},
{ MT_KEYPAD, KM_DIRECT_START, "DIRECT\nSTART", ""},
{ MT_KEYPAD, KM_DIRECT_STOP, "DIRECT\nSTOP", ""},
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back
};
#endif
@ -3159,6 +3169,14 @@ static void fetch_numeric_target(uint8_t mode)
uistat.freq_value = config.ultra_threshold;
plot_printf(uistat.text, sizeof uistat.text, "%3.6fMHz", uistat.freq_value / 1000000.0);
break;
case KM_DIRECT_START:
uistat.freq_value = config.direct_start;
plot_printf(uistat.text, sizeof uistat.text, "%3.6fMHz", uistat.freq_value / 1000000.0);
break;
case KM_DIRECT_STOP:
uistat.freq_value = config.direct_stop;
plot_printf(uistat.text, sizeof uistat.text, "%3.6fMHz", uistat.freq_value / 1000000.0);
break;
#endif
#ifdef __LIMITS__
case KM_LIMIT_FREQ:
@ -3319,6 +3337,14 @@ set_numeric_value(void)
config_save();
ultra_threshold = config.ultra_threshold;
break;
case KM_DIRECT_START:
config.direct_start = uistat.value;
config_save();
break;
case KM_DIRECT_STOP:
config.direct_stop = uistat.value;
config_save();
break;
#endif
#ifdef TINYSA4
case KM_EXP_AVER:

Loading…
Cancel
Save

Powered by TurnKey Linux.