Skip to content

Commit 12a6656

Browse files
committed
Fix hysterisis when prvVal = 0
1 parent dfe9612 commit 12a6656

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

src/components/analogIO/Wippersnapper_AnalogIO.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -405,22 +405,20 @@ void Wippersnapper_AnalogIO::update() {
405405
// This should allow a more wifi blip tolerant threshold for the both ends of the range.
406406
float CURRENT_HYSTERISIS;
407407
if (pinValRaw < maxDecimalValue / 3) {
408-
CURRENT_HYSTERISIS = DEFAULT_HYSTERISIS;
408+
CURRENT_HYSTERISIS = maxDecimalValue * DEFAULT_HYSTERISIS;
409409
} else if (pinValRaw < (maxDecimalValue / 3) * 2) {
410-
CURRENT_HYSTERISIS = DEFAULT_HYSTERISIS * 2;
410+
CURRENT_HYSTERISIS = maxDecimalValue * DEFAULT_HYSTERISIS * 2;
411411
} else {
412-
CURRENT_HYSTERISIS = DEFAULT_HYSTERISIS * 4;
412+
CURRENT_HYSTERISIS = maxDecimalValue * DEFAULT_HYSTERISIS * 4;
413413
}
414414

415415

416416

417417
// get the threshold values for previous pin value
418418
uint16_t _pinValThreshHi =
419-
_analog_input_pins[i].prvPinVal +
420-
(_analog_input_pins[i].prvPinVal * CURRENT_HYSTERISIS);
419+
_analog_input_pins[i].prvPinVal + CURRENT_HYSTERISIS);
421420
uint16_t _pinValThreshLow =
422-
_analog_input_pins[i].prvPinVal -
423-
(_analog_input_pins[i].prvPinVal * CURRENT_HYSTERISIS);
421+
_analog_input_pins[i].prvPinVal - CURRENT_HYSTERISIS);
424422

425423
if (_analog_input_pins[i].prvPeriod == 0 || pinValRaw > _pinValThreshHi || pinValRaw < _pinValThreshLow) {
426424
// Perform voltage conversion if we need to

0 commit comments

Comments
 (0)