diff --git a/lambda/display.c b/lambda/display.c index b9e748a..9c50b5b 100644 --- a/lambda/display.c +++ b/lambda/display.c @@ -65,13 +65,8 @@ * Formats and displays the time since last start/reset. */ static void displayTime(void) { - uint32_t time = getTime(); - uint16_t hours = time / 3600; - uint8_t mins = time % 3600 / 60; - uint8_t secs = time % 60; - - char line1[17]; - snprintf(line1, sizeof(line1), "%u:%02u:%02u", hours, mins, secs); + char line1[12]; + formatTime(line1, sizeof(line1)); setText(MSG_TIME_SINCE_START, line1); } diff --git a/lambda/interrupts.c b/lambda/interrupts.c index 6e325b8..7e89b81 100644 --- a/lambda/interrupts.c +++ b/lambda/interrupts.c @@ -47,6 +47,15 @@ return getInts() / INTS_PER_SEC; } +void formatTime(char* const str, size_t const size) { + uint32_t time = getTime(); + uint16_t hours = time / 3600; + uint8_t mins = time % 3600 / 60; + uint8_t secs = time % 60; + + snprintf(str, size, "%5u:%02u:%02u", hours, mins, secs); +} + void resetTime(void) { ATOMIC_BLOCK(ATOMIC_FORCEON) { ints = 0; diff --git a/lambda/interrupts.h b/lambda/interrupts.h index 343a8e1..2a5c580 100644 --- a/lambda/interrupts.h +++ b/lambda/interrupts.h @@ -26,6 +26,11 @@ uint32_t getTime(void); /** + * Writes the time since last reset in format HHHHH:MM:SS to the given string. + */ +void formatTime(char* str, size_t size); + +/** * Resets the time to 0. */ void resetTime(void); diff --git a/lambda/sensors.c b/lambda/sensors.c index ed608d2..b084d6d 100644 --- a/lambda/sensors.c +++ b/lambda/sensors.c @@ -187,7 +187,7 @@ } } -void setHeatingOn(bool on) { +void setHeatingOn(bool const on) { if (on) { PORTB |= (1 << PB2); heatingState = HEATING_UP; @@ -195,7 +195,7 @@ } else { PORTB &= ~(1 << PB2); heatingState = HEATING_OFF; - cancelAlert(true); + // cancelAlert(true); } } @@ -203,7 +203,7 @@ return bit_is_set(PORTB, PB2); } -void setHeatingState(int8_t state) { +void setHeatingState(int8_t const state) { heatingState = state; }