From 827308f6911f063b5bde5f50101f7275c13c5d05 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Wed, 5 Jan 2022 21:00:14 +1100 Subject: [PATCH] Add some rounding --- source/Core/Threads/GUIThread.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/source/Core/Threads/GUIThread.cpp b/source/Core/Threads/GUIThread.cpp index 054940bc..face0ad1 100644 --- a/source/Core/Threads/GUIThread.cpp +++ b/source/Core/Threads/GUIThread.cpp @@ -226,12 +226,18 @@ static void gui_solderingTempAdjust() { if ((PRESS_ACCEL_INTERVAL_MAX - autoRepeatAcceleration) < PRESS_ACCEL_INTERVAL_MIN) { autoRepeatAcceleration = PRESS_ACCEL_INTERVAL_MAX - PRESS_ACCEL_INTERVAL_MIN; } + // If buttons are flipped; flip the delta if (getSettingValue(SettingsOptions::ReverseButtonTempChangeEnabled)) { delta = -delta; } - // constrain between 10-450 C - uint16_t newTemp = getSettingValue(SettingsOptions::SolderingTemp); + + // constrain between the set temp limits, i.e. 10-450 C + int16_t newTemp = getSettingValue(SettingsOptions::SolderingTemp); newTemp += delta; + // Round to nearest increment of delta + delta = abs(delta); + newTemp = (newTemp / delta) * delta; + if (getSettingValue(SettingsOptions::TemperatureInF)) { if (newTemp > MAX_TEMP_F) newTemp = MAX_TEMP_F; @@ -243,7 +249,7 @@ static void gui_solderingTempAdjust() { if (newTemp < MIN_TEMP_C) newTemp = MIN_TEMP_C; } - setSettingValue(SettingsOptions::SolderingTemp, newTemp); + setSettingValue(SettingsOptions::SolderingTemp, (uint16_t)newTemp); if (xTaskGetTickCount() - lastChange > (TICKS_SECOND * 2)) return; // exit if user just doesn't press anything for a bit