From 067c662510309a3c1841921d2c01e408d6311da4 Mon Sep 17 00:00:00 2001 From: "Lawrence Leung larryleungcal@yahoo.com" Date: Mon, 25 Jul 2011 00:51:01 -0700 Subject: add support for TEMP_RESIDENCY_TIME for M109 --- Sprinter/Configuration.h | 3 +++ Sprinter/Sprinter.pde | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Sprinter/Configuration.h b/Sprinter/Configuration.h index bbc2cfe..c1c4918 100644 --- a/Sprinter/Configuration.h +++ b/Sprinter/Configuration.h @@ -140,6 +140,9 @@ char uuid[] = "00000000-0000-0000-0000-000000000000"; // If the temperature has not increased at the end of that period, the target temperature is set to zero. It can be reset with another M104/M109 //#define WATCHPERIOD 5000 //5 seconds +// Wait this long after achieving target temperature on M109 before continuing with print (seconds) +#define TEMP_RESIDENCY_TIME 20 + //// The minimal temperature defines the temperature below which the heater will not be enabled #define MINTEMP 5 diff --git a/Sprinter/Sprinter.pde b/Sprinter/Sprinter.pde index dde302c..801f103 100644 --- a/Sprinter/Sprinter.pde +++ b/Sprinter/Sprinter.pde @@ -778,6 +778,23 @@ inline void process_commands() } manage_heater(); } + // wait extra time before letting the print continue + #ifdef TEMP_RESIDENCY_TIME + { + long residencyStart = millis(); + codenum = millis(); + while(millis()-residencyStart<(TEMP_RESIDENCY_TIME*1000)) { + if( (millis() - codenum) > 1000 ) //Print Temp Reading every 1 second while heating up. + { + Serial.print("T:"); + Serial.println( analog2temp(current_raw) ); + codenum = millis(); + } + manage_heater(); + } + } + #endif + break; case 190: // M190 - Wait bed for heater to reach target. #if TEMP_1_PIN > -1 -- cgit v1.2.1