From d24f14a799bd76f22c7eea573db578c9ebe4bd92 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 3 Apr 2016 16:18:49 -0700 Subject: [PATCH 1/2] Add HAS_TEMP_HOTEND define --- Marlin/Conditionals.h | 2 ++ Marlin/Marlin.h | 2 +- Marlin/Marlin_main.cpp | 10 +++++----- Marlin/temperature.cpp | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 91760045d7..e4b610d9dd 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -581,6 +581,8 @@ #define HAS_MOTOR_CURRENT_PWM (PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_Z) || PIN_EXISTS(MOTOR_CURRENT_PWM_E)) + #define HAS_TEMP_HOTEND (HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675)) + /** * Helper Macros for heaters and extruder fan */ diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index c425a3b049..c6274056c1 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -368,7 +368,7 @@ extern uint8_t active_extruder; extern void digipot_i2c_init(); #endif -#if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) +#if HAS_TEMP_HOTEND || HAS_TEMP_BED void print_heaterstates(); #endif diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 968555ca4a..99192f4f1c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4100,10 +4100,10 @@ inline void gcode_M104() { if (print_job_stop()) LCD_MESSAGEPGM(WELCOME_MSG); } -#if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) +#if HAS_TEMP_HOTEND || HAS_TEMP_BED void print_heaterstates() { - #if HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675) + #if HAS_TEMP_HOTEND SERIAL_PROTOCOLPGM(" T:"); SERIAL_PROTOCOL_F(degHotend(target_extruder), 1); SERIAL_PROTOCOLPGM(" /"); @@ -4179,10 +4179,10 @@ inline void gcode_M104() { inline void gcode_M105() { if (setTargetedHotend(105)) return; - #if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) + #if HAS_TEMP_HOTEND || HAS_TEMP_BED SERIAL_PROTOCOLPGM(MSG_OK); print_heaterstates(); - #else // !HAS_TEMP_0 && !HAS_TEMP_BED + #else // !HAS_TEMP_HOTEND && !HAS_TEMP_BED SERIAL_ERROR_START; SERIAL_ERRORLNPGM(MSG_ERR_NO_THERMISTORS); #endif @@ -4271,7 +4271,7 @@ inline void gcode_M109() { now = millis(); if (now > next_temp_ms) { //Print temp & remaining time every 1s while waiting next_temp_ms = now + 1000UL; - #if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) + #if HAS_TEMP_HOTEND || HAS_TEMP_BED print_heaterstates(); #endif #ifdef TEMP_RESIDENCY_TIME diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index d20b6e7054..22797a06fb 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -350,7 +350,7 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false } // Every 2 seconds... if (ms > temp_ms + 2000) { - #if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) + #if HAS_TEMP_HOTEND || HAS_TEMP_BED print_heaterstates(); SERIAL_EOL; #endif @@ -1183,7 +1183,7 @@ void disable_all_heaters() { WRITE_HEATER_ ## NR (LOW); \ } - #if HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675) + #if HAS_TEMP_HOTEND setTargetHotend(0, 0); soft_pwm[0] = 0; WRITE_HEATER_0P(LOW); // Should HEATERS_PARALLEL apply here? Then change to DISABLE_HEATER(0) From 877fb1f588a4444252d41aaf51e59ab4d368d70b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 3 Apr 2016 16:19:17 -0700 Subject: [PATCH 2/2] Account for MAX31855 in conditionals --- Marlin/Conditionals.h | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index e4b610d9dd..7063b198e7 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -440,7 +440,9 @@ #define HEATER_0_USES_THERMISTOR #endif - #if TEMP_SENSOR_1 == -1 + #if TEMP_SENSOR_1 <= -2 + #error MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_1 + #elif TEMP_SENSOR_1 == -1 #define HEATER_1_USES_AD595 #elif TEMP_SENSOR_1 == 0 #undef HEATER_1_MINTEMP @@ -450,7 +452,9 @@ #define HEATER_1_USES_THERMISTOR #endif - #if TEMP_SENSOR_2 == -1 + #if TEMP_SENSOR_2 <= -2 + #error MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_2 + #elif TEMP_SENSOR_2 == -1 #define HEATER_2_USES_AD595 #elif TEMP_SENSOR_2 == 0 #undef HEATER_2_MINTEMP @@ -460,7 +464,9 @@ #define HEATER_2_USES_THERMISTOR #endif - #if TEMP_SENSOR_3 == -1 + #if TEMP_SENSOR_3 <= -2 + #error MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_3 + #elif TEMP_SENSOR_3 == -1 #define HEATER_3_USES_AD595 #elif TEMP_SENSOR_3 == 0 #undef HEATER_3_MINTEMP @@ -470,7 +476,9 @@ #define HEATER_3_USES_THERMISTOR #endif - #if TEMP_SENSOR_BED == -1 + #if TEMP_SENSOR_BED <= -2 + #error MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_BED + #elif TEMP_SENSOR_BED == -1 #define BED_USES_AD595 #elif TEMP_SENSOR_BED == 0 #undef BED_MINTEMP @@ -498,11 +506,11 @@ /** * Shorthand for pin tests, used wherever needed */ - #define HAS_TEMP_0 (PIN_EXISTS(TEMP_0) && TEMP_SENSOR_0 != 0 && TEMP_SENSOR_0 != -2) - #define HAS_TEMP_1 (PIN_EXISTS(TEMP_1) && TEMP_SENSOR_1 != 0) - #define HAS_TEMP_2 (PIN_EXISTS(TEMP_2) && TEMP_SENSOR_2 != 0) - #define HAS_TEMP_3 (PIN_EXISTS(TEMP_3) && TEMP_SENSOR_3 != 0) - #define HAS_TEMP_BED (PIN_EXISTS(TEMP_BED) && TEMP_SENSOR_BED != 0) + #define HAS_TEMP_0 (PIN_EXISTS(TEMP_0) && TEMP_SENSOR_0 != 0 && TEMP_SENSOR_0 > -2) + #define HAS_TEMP_1 (PIN_EXISTS(TEMP_1) && TEMP_SENSOR_1 != 0 && TEMP_SENSOR_1 > -2) + #define HAS_TEMP_2 (PIN_EXISTS(TEMP_2) && TEMP_SENSOR_2 != 0 && TEMP_SENSOR_2 > -2) + #define HAS_TEMP_3 (PIN_EXISTS(TEMP_3) && TEMP_SENSOR_3 != 0 && TEMP_SENSOR_3 > -2) + #define HAS_TEMP_BED (PIN_EXISTS(TEMP_BED) && TEMP_SENSOR_BED != 0 && TEMP_SENSOR_BED > -2) #define HAS_HEATER_0 (PIN_EXISTS(HEATER_0)) #define HAS_HEATER_1 (PIN_EXISTS(HEATER_1)) #define HAS_HEATER_2 (PIN_EXISTS(HEATER_2))