From e206720abfb5d14ae7d5d3505e458cbdc6c87ae8 Mon Sep 17 00:00:00 2001 From: midopple Date: Mon, 27 Aug 2012 17:35:54 +0200 Subject: M303 Autotune use HEATER_CURRENT for Maximum PWM Value --- Sprinter/heater.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Sprinter/heater.cpp') diff --git a/Sprinter/heater.cpp b/Sprinter/heater.cpp index 8283373..119e547 100644 --- a/Sprinter/heater.cpp +++ b/Sprinter/heater.cpp @@ -314,7 +314,7 @@ void PID_autotune(int PIDAT_test_temp) float PIDAT_max, PIDAT_min; - unsigned char PIDAT_PWM_val = 255; + unsigned char PIDAT_PWM_val = HEATER_CURRENT; unsigned char PIDAT_cycles=0; bool PIDAT_heating = true; @@ -329,8 +329,8 @@ void PID_autotune(int PIDAT_test_temp) long PIDAT_t_high; long PIDAT_t_low; - long PIDAT_bias= 127; - long PIDAT_d = 127; + long PIDAT_bias= HEATER_CURRENT/2; + long PIDAT_d = HEATER_CURRENT/2; float PIDAT_Ku, PIDAT_Tu; float PIDAT_Kp, PIDAT_Ki, PIDAT_Kd; @@ -404,8 +404,8 @@ void PID_autotune(int PIDAT_test_temp) if(PIDAT_cycles > 0) { PIDAT_bias += (PIDAT_d*(PIDAT_t_high - PIDAT_t_low))/(PIDAT_t_low + PIDAT_t_high); - PIDAT_bias = constrain(PIDAT_bias, 20 ,235); - if(PIDAT_bias > 127) PIDAT_d = 254 - PIDAT_bias; + PIDAT_bias = constrain(PIDAT_bias, 20 ,HEATER_CURRENT - 20); + if(PIDAT_bias > (HEATER_CURRENT/2)) PIDAT_d = (HEATER_CURRENT - 1) - PIDAT_bias; else PIDAT_d = PIDAT_bias; showString(PSTR(" bias: ")); Serial.print(PIDAT_bias); @@ -466,7 +466,7 @@ void PID_autotune(int PIDAT_test_temp) #endif } - if(PIDAT_input > (PIDAT_test_temp + 20)) + if(PIDAT_input > (PIDAT_test_temp + 25)) { showString(PSTR("PID Autotune failed! Temperature to high\r\n")); return; -- cgit v1.2.1