From 85f8a26ba45ea58fbafe7c6ace24e237e4196533 Mon Sep 17 00:00:00 2001 From: AnHardt Date: Wed, 1 Apr 2015 00:48:04 +0200 Subject: [PATCH 1/3] Fix MIN&MAX temperatures again replaced GE0 with th matching GEX in the second row. added some () --- Marlin/temperature.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 884de9401..420eae6a0 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1539,8 +1539,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE0 >= #endif - if (current_temperature_raw[0] GE0 maxttemp_raw[0]) max_temp_error(0); - if (minttemp_raw[0] GE0 current_temperature_raw[0]) min_temp_error(0); + if ((current_temperature_raw[0]) GE0 (maxttemp_raw[0])) max_temp_error(0); + if ((minttemp_raw[0]) GE0 (current_temperature_raw[0])) min_temp_error(0); #endif #if EXTRUDERS > 1 @@ -1549,8 +1549,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE1 >= #endif - if (current_temperature_raw[1] GE1 maxttemp_raw[1]) max_temp_error(1); - if (minttemp_raw[1] GE0 current_temperature_raw[1]) min_temp_error(1); + if ((current_temperature_raw[1]) GE1 (maxttemp_raw[1])) max_temp_error(1); + if ((minttemp_raw[1]) GE1 (current_temperature_raw[1])) min_temp_error(1); #if EXTRUDERS > 2 #if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP @@ -1558,8 +1558,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE2 >= #endif - if (current_temperature_raw[2] GE2 maxttemp_raw[2]) max_temp_error(2); - if (minttemp_raw[2] GE0 current_temperature_raw[2]) min_temp_error(2); + if ((current_temperature_raw[2]) GE2 (maxttemp_raw[2])) max_temp_error(2); + if ((minttemp_raw[2]) GE2 (current_temperature_raw[2])) min_temp_error(2); #if EXTRUDERS > 3 #if HEATER_3_RAW_LO_TEMP > HEATER_3_RAW_HI_TEMP @@ -1567,8 +1567,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE3 >= #endif - if (current_temperature_raw[3] GE3 maxttemp_raw[3]) max_temp_error(3); - if (minttemp_raw[3] GE0 current_temperature_raw[3]) min_temp_error(3); + if ((current_temperature_raw[3]) GE3 (maxttemp_raw[3])) max_temp_error(3); + if ((minttemp_raw[3]) GE3 (current_temperature_raw[3])) min_temp_error(3); #endif // EXTRUDERS > 3 #endif // EXTRUDERS > 2 From 3f2e8632069a939d6e67cdd7f105611299d0e7b1 Mon Sep 17 00:00:00 2001 From: AnHardt Date: Wed, 1 Apr 2015 02:56:14 +0200 Subject: [PATCH 2/3] Improve conditions for HAS_TEMP and use them in temperuture.h Flattened the if structure - the preprocessor is doing the work - not the Arduino. Arduino. --- Marlin/Conditionals.h | 10 +++++----- Marlin/temperature.cpp | 43 +++++++++++++++++++++--------------------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 8399c4bf6..23425da86 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -345,11 +345,11 @@ /** * Shorthand for pin tests, for temperature.cpp */ - #define HAS_TEMP_0 (defined(TEMP_0_PIN) && TEMP_0_PIN >= 0) - #define HAS_TEMP_1 (defined(TEMP_1_PIN) && TEMP_1_PIN >= 0) - #define HAS_TEMP_2 (defined(TEMP_2_PIN) && TEMP_2_PIN >= 0) - #define HAS_TEMP_3 (defined(TEMP_3_PIN) && TEMP_3_PIN >= 0) - #define HAS_TEMP_BED (defined(TEMP_BED_PIN) && TEMP_BED_PIN >= 0) + #define HAS_TEMP_0 (defined(TEMP_0_PIN) && TEMP_0_PIN >= 0 && TEMP_SENSOR_0 != 0 && TEMP_SENSOR_0 != -2) + #define HAS_TEMP_1 (defined(TEMP_1_PIN) && TEMP_1_PIN >= 0 && TEMP_SENSOR_1 != 0) + #define HAS_TEMP_2 (defined(TEMP_2_PIN) && TEMP_2_PIN >= 0 && TEMP_SENSOR_2 != 0) + #define HAS_TEMP_3 (defined(TEMP_3_PIN) && TEMP_3_PIN >= 0 && TEMP_SENSOR_3 != 0) + #define HAS_TEMP_BED (defined(TEMP_BED_PIN) && TEMP_BED_PIN >= 0 && TEMP_SENSOR_BED != 0) #define HAS_FILAMENT_SENSOR (defined(FILAMENT_SENSOR) && defined(FILWIDTH_PIN) && FILWIDTH_PIN >= 0) #define HAS_HEATER_0 (defined(HEATER_0_PIN) && HEATER_0_PIN >= 0) #define HAS_HEATER_1 (defined(HEATER_1_PIN) && HEATER_1_PIN >= 0) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 420eae6a0..10b774b68 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1543,7 +1543,7 @@ ISR(TIMER0_COMPB_vect) { if ((minttemp_raw[0]) GE0 (current_temperature_raw[0])) min_temp_error(0); #endif - #if EXTRUDERS > 1 + #if HAS_TEMP_1 #if HEATER_1_RAW_LO_TEMP > HEATER_1_RAW_HI_TEMP #define GE1 <= #else @@ -1551,30 +1551,29 @@ ISR(TIMER0_COMPB_vect) { #endif if ((current_temperature_raw[1]) GE1 (maxttemp_raw[1])) max_temp_error(1); if ((minttemp_raw[1]) GE1 (current_temperature_raw[1])) min_temp_error(1); + #endif // TEMP_SENSOR_1 - #if EXTRUDERS > 2 - #if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP - #define GE2 <= - #else - #define GE2 >= - #endif - if ((current_temperature_raw[2]) GE2 (maxttemp_raw[2])) max_temp_error(2); - if ((minttemp_raw[2]) GE2 (current_temperature_raw[2])) min_temp_error(2); - - #if EXTRUDERS > 3 - #if HEATER_3_RAW_LO_TEMP > HEATER_3_RAW_HI_TEMP - #define GE3 <= - #else - #define GE3 >= - #endif - if ((current_temperature_raw[3]) GE3 (maxttemp_raw[3])) max_temp_error(3); - if ((minttemp_raw[3]) GE3 (current_temperature_raw[3])) min_temp_error(3); + #if HAS_TEMP_2 + #if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP + #define GE2 <= + #else + #define GE2 >= + #endif + if ((current_temperature_raw[2]) GE2 (maxttemp_raw[2])) max_temp_error(2); + if ((minttemp_raw[2]) GE2 (current_temperature_raw[2])) min_temp_error(2); + #endif // TEMP_SENSOR_2 - #endif // EXTRUDERS > 3 - #endif // EXTRUDERS > 2 - #endif // EXTRUDERS > 1 + #if HAS_TEMP_3 + #if HEATER_3_RAW_LO_TEMP > HEATER_3_RAW_HI_TEMP + #define GE3 <= + #else + #define GE3 >= + #endif + if ((current_temperature_raw[3]) GE3 (maxttemp_raw[3])) max_temp_error(3); + if ((minttemp_raw[3]) GE3 (current_temperature_raw[3])) min_temp_error(3); + #endif // TEMP_SENSOR_3 - #if defined(BED_MAXTEMP) && (TEMP_SENSOR_BED != 0) + #if HAS_TEMP_BED #if HEATER_BED_RAW_LO_TEMP > HEATER_BED_RAW_HI_TEMP #define GEBED <= #else From 488666832bb83f2ab3764a0fda8654bd2e8e7a71 Mon Sep 17 00:00:00 2001 From: AnHardt Date: Wed, 1 Apr 2015 13:40:05 +0200 Subject: [PATCH 3/3] Remove the previously introduced () --- Marlin/temperature.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 10b774b68..b59ff29df 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1539,8 +1539,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE0 >= #endif - if ((current_temperature_raw[0]) GE0 (maxttemp_raw[0])) max_temp_error(0); - if ((minttemp_raw[0]) GE0 (current_temperature_raw[0])) min_temp_error(0); + if (current_temperature_raw[0] GE0 maxttemp_raw[0]) max_temp_error(0); + if (minttemp_raw[0] GE0 current_temperature_raw[0]) min_temp_error(0); #endif #if HAS_TEMP_1 @@ -1549,8 +1549,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE1 >= #endif - if ((current_temperature_raw[1]) GE1 (maxttemp_raw[1])) max_temp_error(1); - if ((minttemp_raw[1]) GE1 (current_temperature_raw[1])) min_temp_error(1); + if (current_temperature_raw[1] GE1 maxttemp_raw[1]) max_temp_error(1); + if (minttemp_raw[1] GE1 current_temperature_raw[1]) min_temp_error(1); #endif // TEMP_SENSOR_1 #if HAS_TEMP_2 @@ -1559,8 +1559,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE2 >= #endif - if ((current_temperature_raw[2]) GE2 (maxttemp_raw[2])) max_temp_error(2); - if ((minttemp_raw[2]) GE2 (current_temperature_raw[2])) min_temp_error(2); + if (current_temperature_raw[2] GE2 (maxttemp_raw[2]) max_temp_error(2); + if (minttemp_raw[2] GE2 current_temperature_raw[2]) min_temp_error(2); #endif // TEMP_SENSOR_2 #if HAS_TEMP_3 @@ -1569,8 +1569,8 @@ ISR(TIMER0_COMPB_vect) { #else #define GE3 >= #endif - if ((current_temperature_raw[3]) GE3 (maxttemp_raw[3])) max_temp_error(3); - if ((minttemp_raw[3]) GE3 (current_temperature_raw[3])) min_temp_error(3); + if (current_temperature_raw[3] GE3 maxttemp_raw[3]) max_temp_error(3); + if (minttemp_raw[3] GE3 current_temperature_raw[3]) min_temp_error(3); #endif // TEMP_SENSOR_3 #if HAS_TEMP_BED