Updated sweep time prediction

pull/4/head
erikkaashoek 6 years ago
parent 574dd404dc
commit 54e3eb5537

@ -639,8 +639,8 @@ enum { S_OFF=0, S_ON=1, S_AUTO_OFF=2, S_AUTO_ON=3 };
#define ONE_SECOND_TIME 1000000U // One second uS #define ONE_SECOND_TIME 1000000U // One second uS
#define ONE_MS_TIME 1000U // One ms uS #define ONE_MS_TIME 1000U // One ms uS
#define REPEAT_TIME 134 // Time per extra repeat in uS #define REPEAT_TIME 110 // Time per extra repeat in uS
#define MEASURE_TIME 175 // Time per vbwstep without stepdelay in uS #define MEASURE_TIME 127 // Time per vbwstep without step delay in uS
extern uint32_t frequencies[POINTS_COUNT]; extern uint32_t frequencies[POINTS_COUNT];
extern const float unit_scale_value[]; extern const float unit_scale_value[];

@ -31,6 +31,7 @@ float actual_rbw = 0;
int vbwSteps = 1; int vbwSteps = 1;
uint32_t minFreq = 0; uint32_t minFreq = 0;
uint32_t maxFreq = 520000000; uint32_t maxFreq = 520000000;
uint32_t measured_sweep_time = 0;
//int setting.refer = -1; // Off by default //int setting.refer = -1; // Off by default
int const reffer_freq[] = {30000000, 15000000, 10000000, 4000000, 3000000, 2000000, 1000000}; int const reffer_freq[] = {30000000, 15000000, 10000000, 4000000, 3000000, 2000000, 1000000};
@ -1594,12 +1595,14 @@ again: // Waiting for a trigger jumps back to here
if (MODE_OUTPUT(setting.mode) && t < 500) // Minimum wait time to prevent LO from lockup during output frequency sweep if (MODE_OUTPUT(setting.mode) && t < 500) // Minimum wait time to prevent LO from lockup during output frequency sweep
t = 500; t = 500;
set_freq_time = 0; // for predicting the weep time
sweep_again: // stay in sweep loop when output mode and modulation on. sweep_again: // stay in sweep loop when output mode and modulation on.
set_freq_time = 0; // for predicting the weep time
// ------------------------- start sweep loop ----------------------------------- // ------------------------- start sweep loop -----------------------------------
// START_PROFILE; START_PROFILE; // needed to measure actual sweep time except for fast scan in zero span mode
for (int i = 0; i < sweep_points; i++) { for (int i = 0; i < sweep_points; i++) {
if (start_index == -1 && start_time == 0 && set_freq_time != 0) { // Sweep time prediction: first real set SI4432 freq if (start_index == -1 && start_time == 0 && set_freq_time != 0) { // Sweep time prediction: first real set SI4432 freq
@ -1732,6 +1735,7 @@ sweep_again: // stay in sweep loop when output mo
goto sweep_again; // Keep repeating sweep loop till user aborts by input goto sweep_again; // Keep repeating sweep loop till user aborts by input
measured_sweep_time = DELTA_TIME*100; // in us
//STOP_PROFILE; //STOP_PROFILE;
// --------------- check if maximum is above trigger level ----------------- // --------------- check if maximum is above trigger level -----------------

@ -448,7 +448,7 @@ float SI4432_RSSI(uint32_t i, int s)
} }
SI4432_frequency_changed = false; SI4432_frequency_changed = false;
} else if (SI4432_offset_changed) { } else if (SI4432_offset_changed) {
stepdelay = 280 + stepdelay/8; stepdelay = 280 + (stepdelay - 280)/8;
SI4432_offset_changed = false; SI4432_offset_changed = false;
} }
if (stepdelay) if (stepdelay)

Loading…
Cancel
Save

Powered by TurnKey Linux.