Autorange for linear scales

tinySA-v0.2
erikkaashoek 6 years ago
parent c62a0b5761
commit 2667955977

@ -1141,6 +1141,18 @@ static bool sweep(bool break_on_operation)
}
}
if (!in_selftest && MODE_INPUT(setting.mode) && setting.auto_reflevel && max_index[0] > 0) {
if (setting.unit == U_VOLT || setting.unit == U_MWATT) {
float t = value(actual_t[max_index[0]]);
if (t < setting.reflevel / 2 || t> setting.reflevel) {
float m = 1;
t = t * 1.2;
while (t > 10) { m *= 10; t/=10; }
while (t < 1) { m /= 10; t*=10; }
t = round(t);
set_scale(t*m / 9);
set_reflevel(t*m);
}
} else {
if (value(actual_t[max_index[0]]) > setting.reflevel - setting.scale/2) {
set_reflevel(setting.reflevel + setting.scale);
redraw_request |= REDRAW_CAL_STATUS;
@ -1155,6 +1167,7 @@ static bool sweep(bool break_on_operation)
dirty = true; // Must be above if(scandirty!!!!!)
}
}
}
#if 1
if (MODE_INPUT(setting.mode)) {
int i = 0;

Loading…
Cancel
Save

Powered by TurnKey Linux.