diff --git a/Marlin/printcounter.cpp b/Marlin/printcounter.cpp index 30a94f28db..3a555c2a78 100644 --- a/Marlin/printcounter.cpp +++ b/Marlin/printcounter.cpp @@ -128,7 +128,7 @@ void PrintCounter::tick() { } // Trying to get the amount of calculations down to the bare min - const static uint16_t j = this->saveInterval * 1000; + const static uint32_t j = this->saveInterval * 1000; if (now - eeprom_before >= j) { eeprom_before = now; @@ -164,6 +164,7 @@ bool PrintCounter::stop() { this->data.finishedPrints++; this->data.printTime += this->deltaDuration(); this->saveStats(); + return true; } else return false; } diff --git a/Marlin/printcounter.h b/Marlin/printcounter.h index 7e5ef31b33..dbee3f9e6d 100644 --- a/Marlin/printcounter.h +++ b/Marlin/printcounter.h @@ -55,6 +55,9 @@ class PrintCounter: public Stopwatch { * @brief Interval in seconds between counter updates * @details This const value defines what will be the time between each * accumulator update. This is different from the EEPROM save interval. + * + * @note The max value for this option is 60(s), otherwise integer + * overflow will happen. */ const uint16_t updateInterval = 10;