From 9bff09c6d0eb692ca77457edd6f6565fb61a8615 Mon Sep 17 00:00:00 2001 From: Leon Oostrum Date: Thu, 22 Jun 2023 13:31:19 +0200 Subject: [PATCH] Update display every 500 ms; make sure to always select the next active sensor pair --- device/PowerSensor/PowerSensor.ino | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/device/PowerSensor/PowerSensor.ino b/device/PowerSensor/PowerSensor.ino index fdec7264..745b7aa5 100644 --- a/device/PowerSensor/PowerSensor.ino +++ b/device/PowerSensor/PowerSensor.ino @@ -37,7 +37,7 @@ #include #ifndef NODISPLAY -#define UPDATE_INVERVAL 2000 // ms +#define UPDATE_INVERVAL 500 // ms #define VOLTAGE 3.3 #define MAX_LEVEL 1023 #include "display.hpp" @@ -326,13 +326,15 @@ void updateDisplay() { static unsigned int sensor_pair = 0; previousMillis = millis(); + // select next active sensor pair + do { + sensor_pair = (sensor_pair + 1) % PAIRS; + } while (!(eeprom.sensors[2 * sensor_pair].inUse & eeprom.sensors[2 * sensor_pair + 1].inUse)); + // update the values, then write to display - sensor_pair = (sensor_pair + 1) % PAIRS; updateCalibratedSensorValues(); - if (eeprom.sensors[2 * sensor_pair].inUse & eeprom.sensors[2 * sensor_pair + 1].inUse) { - displaySensor(sensor_pair, currentValues[sensor_pair], - voltageValues[sensor_pair], powerValues[sensor_pair], totalPower); - } + displaySensor(sensor_pair, currentValues[sensor_pair], voltageValues[sensor_pair], powerValues[sensor_pair], + totalPower); } } #endif