Corrected rounding error

master
erikkaashoek 5 years ago
parent 34560a911b
commit 917366bc1b

@ -1089,8 +1089,8 @@ void set_marker_frequency(int m, uint32_t f)
int i = 1;
markers[m].mtype &= ~M_TRACKING;
uint32_t s = (frequencies[1] - frequencies[0])/2;
while (i< sweep_points - 1){
if (frequencies[i]-s <= f && f < frequencies[i]+s) {
while (i< sweep_points - 2){
if (frequencies[i]-s <= f && f < frequencies[i+1]-s) { // Avoid rounding error in s!!!!!!!
markers[m].index = i;
markers[m].frequency = f;
return;

@ -3441,6 +3441,7 @@ void self_test(int test)
ili9341_clear_screen();
reset_settings(M_LOW);
set_refer_output(-1);
#ifdef DOESNOTFIT
} else if (test == 1) {
float p2, p1, p;
in_selftest = true; // Spur search
@ -3605,9 +3606,7 @@ void self_test(int test)
reset_settings(M_LOW);
setting.step_delay_mode = SD_NORMAL;
setting.step_delay = 0;
}
#ifdef DOESNOTFIT
else if (test == 5) {
} else if (test == 5) {
// reset_settings(M_LOW); // Make sure we are in a defined state
in_selftest = true;
switch (setting.test_argument) {
@ -3644,8 +3643,8 @@ void self_test(int test)
break;
}
in_selftest = false;
}
#endif
}
show_test_info = FALSE;
in_selftest = false;
test_wait = false;

@ -872,12 +872,13 @@ static UI_FUNCTION_ADV_CALLBACK(menu_measure_acb)
if (uistat.value < 3000)
break;
span = uistat.value;
set_sweep_frequency(ST_SPAN, 100000); // 100kHz
set_sweep_frequency(ST_SPAN, 50000); // 100kHz
// update_frequencies(); // To ensure markers are positioned right!!!!!!
set_measurement(M_AM);
set_marker_frequency(0, center);
set_marker_frequency(1, center-span);
set_marker_frequency(2, center+span);
set_average(5);
set_average(4);
break;
case M_FM: // FM
reset_settings(setting.mode);

Loading…
Cancel
Save

Powered by TurnKey Linux.