From e31bef31ad4ce8f97b892ccccec4947c8fc372d4 Mon Sep 17 00:00:00 2001 From: Erik van der Zalm Date: Wed, 16 May 2012 19:32:23 +0200 Subject: [PATCH] Limit PID autotune PWM to PID_MAX --- Marlin/temperature.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index e21bd2598d..395061cc21 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -134,8 +134,8 @@ void PID_autotune(float temp) long t_high; long t_low; - long bias=127; - long d = 127; + long bias=PID_MAX/2; + long d = PID_MAX/2; float Ku, Tu; float Kp, Ki, Kd; float max, min; @@ -144,7 +144,7 @@ void PID_autotune(float temp) disable_heater(); // switch off all heaters. - soft_pwm[0] = 255>>1; + soft_pwm[0] = PID_MAX/2; for(;;) { @@ -172,8 +172,8 @@ void PID_autotune(float temp) t_low=t2 - t1; if(cycles > 0) { bias += (d*(t_high - t_low))/(t_low + t_high); - bias = constrain(bias, 20 ,235); - if(bias > 127) d = 254 - bias; + bias = constrain(bias, 20 ,PID_MAX-20); + if(bias > PID_MAX/2) d = PID_MAX - 1 - bias; else d = bias; SERIAL_PROTOCOLPGM(" bias: "); SERIAL_PROTOCOL(bias);