Allow stopwatch and printcounter to go over 18 hours

This commit is contained in:
Scott Lahteine
2016-07-12 19:03:42 -07:00
parent 6080924589
commit e481b79af1
7 changed files with 24 additions and 26 deletions

View File

@ -27,12 +27,12 @@ PrintCounter::PrintCounter(): super() {
this->loadStats();
}
uint16_t PrintCounter::deltaDuration() {
millis_t PrintCounter::deltaDuration() {
#if ENABLED(DEBUG_PRINTCOUNTER)
PrintCounter::debug(PSTR("deltaDuration"));
#endif
uint16_t tmp = this->lastDuration;
millis_t tmp = this->lastDuration;
this->lastDuration = this->duration();
return this->lastDuration - tmp;
}
@ -88,12 +88,12 @@ void PrintCounter::showStats() {
SERIAL_ECHO(this->data.totalPrints - this->data.finishedPrints
- ((this->isRunning() || this->isPaused()) ? 1 : 0)); // Removes 1 from failures with an active counter
uint32_t t = this->data.printTime / 60;
millis_t t = this->data.printTime / 60; // minutes from seconds
SERIAL_ECHOPGM(", Total print time: ");
SERIAL_ECHO(t / 60);
SERIAL_ECHO(t / 60); // hours
SERIAL_ECHOPGM("h ");
SERIAL_ECHO(t % 60);
SERIAL_ECHO(t % 60); // minutes
SERIAL_ECHOPGM("min");
@ -110,10 +110,10 @@ void PrintCounter::showStats() {
void PrintCounter::tick() {
if (!this->isRunning()) return;
static uint32_t update_before = millis(),
static millis_t update_before = millis(),
eeprom_before = millis();
uint32_t now = millis();
millis_t now = millis();
// Trying to get the amount of calculations down to the bare min
const static uint16_t i = this->updateInterval * 1000;
@ -128,8 +128,7 @@ void PrintCounter::tick() {
}
// Trying to get the amount of calculations down to the bare min
const static uint32_t j = this->saveInterval * 1000;
const static millis_t j = this->saveInterval * 1000;
if (now - eeprom_before >= j) {
eeprom_before = now;
this->saveStats();