From e44294bb4dd378655369c0006c7f8f59c26990e8 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 12 Feb 2017 02:50:05 -0600 Subject: [PATCH] Make HOTEND_LOOP more consistent, let compiler optimize it --- Marlin/configuration_store.cpp | 2 -- Marlin/temperature.cpp | 15 +++------------ Marlin/temperature.h | 4 ++-- Marlin/ultralcd.cpp | 2 +- 4 files changed, 6 insertions(+), 17 deletions(-) diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index 4d14b67780..e5ec268288 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -787,8 +787,6 @@ void Config_ResetDefault() { #if ENABLED(PIDTEMP) #if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1 HOTEND_LOOP() - #else - int e = 0; UNUSED(e); // only need to write once #endif { PID_PARAM(Kp, e) = DEFAULT_Kp; diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 9eb68f7f1d..c08d5b8b33 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -731,7 +731,7 @@ void Temperature::manage_heater() { } #endif - } // Hotends Loop + } // HOTEND_LOOP #if HAS_AUTO_FAN if (ELAPSED(ms, next_auto_fan_check_ms)) { // only need to check fan state very infrequently @@ -885,9 +885,8 @@ void Temperature::updateTemperaturesFromRawValues() { #if ENABLED(HEATER_0_USES_MAX6675) current_temperature_raw[0] = read_max6675(); #endif - HOTEND_LOOP() { + HOTEND_LOOP() current_temperature[e] = Temperature::analog2temp(current_temperature_raw[e], e); - } current_temperature_bed = Temperature::analog2tempBed(current_temperature_bed_raw); #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) redundant_temperature = Temperature::analog2temp(redundant_temperature_raw, 1); @@ -939,15 +938,7 @@ void Temperature::init() { #endif // Finish init of mult hotend arrays - HOTEND_LOOP() { - // populate with the first value - maxttemp[e] = maxttemp[0]; - #if ENABLED(PIDTEMP) - #if ENABLED(PID_EXTRUSION_SCALING) - last_e_position = 0; - #endif - #endif //PIDTEMP - } + HOTEND_LOOP() maxttemp[e] = maxttemp[0]; #if ENABLED(PIDTEMP) && ENABLED(PID_EXTRUSION_SCALING) last_e_position = 0; diff --git a/Marlin/temperature.h b/Marlin/temperature.h index a6b9874c6a..182efd5645 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -40,12 +40,12 @@ #define SOFT_PWM_SCALE 0 #endif +#define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++) + #if HOTENDS == 1 - #define HOTEND_LOOP() const int8_t e = 0; #define HOTEND_INDEX 0 #define EXTRUDER_IDX 0 #else - #define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++) #define HOTEND_INDEX e #define EXTRUDER_IDX active_extruder #endif diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 8af3cecf6c..81aee75a6e 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1403,7 +1403,7 @@ KeepDrawing: // Cooldown // bool has_heat = false; - HOTEND_LOOP() if (thermalManager.target_temperature[HOTEND_INDEX]) { has_heat = true; } + HOTEND_LOOP() if (thermalManager.target_temperature[HOTEND_INDEX]) { has_heat = true; break; } #if HAS_TEMP_BED if (thermalManager.target_temperature_bed) has_heat = true; #endif