diff --git a/src/main.c b/src/main.c index c23b91b..f5e9590 100644 --- a/src/main.c +++ b/src/main.c @@ -1,11 +1,12 @@ +#include #include #include #define MOISTURE_SENSOR_A0 A0 volatile bool readSensors = false; -uint32_t moistureReadingSum = 0; -uint8_t moistureReadingCount = 0; +int16_t moistureReadingSum = 0; +int8_t moistureReadingCount = 0; const uint8_t SENSOR_READINGS = 3; ISR(WDT_vect) { @@ -20,6 +21,20 @@ void watchdogs() { sei(); } +int16_t readMoisture() { + if (readSensors) { + moistureReadingSum += analogRead(MOISTURE_SENSOR_A0); + moistureReadingCount++; + + if (moistureReadingCount >= SENSOR_READINGS) { + Serial.println(moistureReadingSum / SENSOR_READINGS); + moistureReadingSum = 0; + moistureReadingCount = 0; + } else readSensors = true; + } + readSensors = false; +} + void enterSleep() { // Arduino disables USB when sleeping // if using Serial, use flag : SLEEP_MODE_IDLE @@ -38,17 +53,6 @@ void setup() { } void loop() { - if (readSensors) { - moistureReadingSum += analogRead(MOISTURE_SENSOR_A0); - moistureReadingCount++; - - if (moistureReadingCount >= SENSOR_READINGS) { - Serial.println(moistureReadingSum / SENSOR_READINGS); - moistureReadingSum = 0; - moistureReadingCount = 0; - } else readSensors = true; - } - readSensors = false; - } + int16_t moisture = readMoisture(); enterSleep(); }