DIrect start/stop and more backup

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

@ -131,9 +131,18 @@ static THD_FUNCTION(Thread1, arg)
while (1) { while (1) {
// START_PROFILE // START_PROFILE
if (sweep_mode&(SWEEP_ENABLE|SWEEP_ONCE)) { if (sweep_mode&(SWEEP_ENABLE|SWEEP_ONCE)) {
// if (dirty)
backup.frequency0 = setting.frequency0; backup.frequency0 = setting.frequency0;
backup.frequency1 = setting.frequency1; backup.frequency1 = setting.frequency1;
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); completed = sweep(true);
sweep_mode&=~SWEEP_ONCE; sweep_mode&=~SWEEP_ONCE;
} else if (sweep_mode & SWEEP_SELFTEST) { } else if (sweep_mode & SWEEP_SELFTEST) {
@ -925,6 +934,10 @@ config_t config = {
#endif #endif
.sweep_voltage = 3.3, .sweep_voltage = 3.3,
.switch_offset = 0.0, .switch_offset = 0.0,
#ifdef TINYSA4
.direct_start = 9650000000UL,
.direct_stop = 9850000000UL,
#endif
}; };
//properties_t current_props; //properties_t current_props;
@ -2454,13 +2467,24 @@ int main(void)
if (caldata_recall(0) == -1) { if (caldata_recall(0) == -1) {
load_LCD_properties(); load_LCD_properties();
} }
{backup_t b = backup;
if (backup.frequency0 != 0 || backup.frequency1 != 0) { if (backup.frequency0 != 0 || backup.frequency1 != 0) {
setting.frequency0 = backup.frequency0; setting.frequency0 = backup.frequency0;
setting.frequency1 = backup.frequency1; setting.frequency1 = backup.frequency1;
update_frequencies(); 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); set_refer_output(-1);
// ui_mode_menu(); // Show menu when autostarting mode // ui_mode_menu(); // Show menu when autostarting mode
ui_mode_normal(); ui_mode_normal();

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

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

Loading…
Cancel
Save

Powered by TurnKey Linux.