Merge remote-tracking branch 'origin/Marlin_v1' into Marlin_v1
This commit is contained in:
		| @@ -104,11 +104,11 @@ | ||||
|   // PID_SWING_AT_CRITIAL is the time for a full period of the oscillations at the critical Gain | ||||
|   // usually further manual tunine is necessary. | ||||
|  | ||||
|   #define PID_CRITIAL_GAIN 3000 | ||||
|   #define PID_SWING_AT_CRITIAL 45 //seconds | ||||
|   #define PID_CRITIAL_GAIN 50 | ||||
|   #define PID_SWING_AT_CRITIAL 47 //seconds | ||||
|    | ||||
|   #define PID_PI    //no differentail term | ||||
|   //#define PID_PID //normal PID | ||||
|   //#define PID_PI    //no differentail term | ||||
|   #define PID_PID //normal PID | ||||
|  | ||||
|   #ifdef PID_PID | ||||
|     //PID according to Ziegler-Nichols method | ||||
|   | ||||
| @@ -902,24 +902,28 @@ inline void process_commands() | ||||
|  | ||||
|     #ifdef PIDTEMP | ||||
|     case 301: // M301 | ||||
|       if(code_seen('P')) Kp = code_value(); | ||||
|       if(code_seen('I')) Ki = code_value()*PID_dT; | ||||
|       if(code_seen('D')) Kd = code_value()/PID_dT; | ||||
|       #ifdef PID_ADD_EXTRUSION_RATE | ||||
|       if(code_seen('C')) Kc = code_value(); | ||||
|       #endif | ||||
|       SERIAL_PROTOCOL("ok p:"); | ||||
|       SERIAL_PROTOCOL(Kp); | ||||
|       SERIAL_PROTOCOL(" i:"); | ||||
|       SERIAL_PROTOCOL(Ki/PID_dT); | ||||
|       SERIAL_PROTOCOL(" d:"); | ||||
|       SERIAL_PROTOCOL(Kd*PID_dT); | ||||
|       #ifdef PID_ADD_EXTRUSION_RATE | ||||
|       SERIAL_PROTOCOL(" c:"); | ||||
|       SERIAL_PROTOCOL(Kc*PID_dT); | ||||
|       #endif | ||||
|       SERIAL_PROTOCOLLN(""); | ||||
|        | ||||
|       { | ||||
|          | ||||
|         | ||||
|         if(code_seen('P')) Kp = code_value(); | ||||
|         if(code_seen('I')) Ki = code_value()*PID_dT; | ||||
|         if(code_seen('D')) Kd = code_value()/PID_dT; | ||||
|         #ifdef PID_ADD_EXTRUSION_RATE | ||||
|         if(code_seen('C')) Kc = code_value(); | ||||
|         #endif | ||||
|         updatePID(); | ||||
|         SERIAL_PROTOCOL("ok p:"); | ||||
|         SERIAL_PROTOCOL(Kp); | ||||
|         SERIAL_PROTOCOL(" i:"); | ||||
|         SERIAL_PROTOCOL(Ki/PID_dT); | ||||
|         SERIAL_PROTOCOL(" d:"); | ||||
|         SERIAL_PROTOCOL(Kd*PID_dT); | ||||
|         #ifdef PID_ADD_EXTRUSION_RATE | ||||
|         SERIAL_PROTOCOL(" c:"); | ||||
|         SERIAL_PROTOCOL(Kc*PID_dT); | ||||
|         #endif | ||||
|         SERIAL_PROTOCOLLN(""); | ||||
|       } | ||||
|       break; | ||||
|     #endif //PIDTEMP | ||||
|     case 400: // finish all moves | ||||
|   | ||||
| @@ -114,6 +114,13 @@ static unsigned long previous_millis_heater, previous_millis_bed_heater; | ||||
| //=============================functions         ============================ | ||||
| //=========================================================================== | ||||
|    | ||||
| void updatePID() | ||||
| { | ||||
| #ifdef PIDTEMP | ||||
|   temp_iState_max = PID_INTEGRAL_DRIVE_MAX / Ki; | ||||
| #endif | ||||
| } | ||||
|    | ||||
| void manage_heater() | ||||
| { | ||||
|   #ifdef USE_WATCHDOG | ||||
|   | ||||
| @@ -87,6 +87,7 @@ inline bool isCoolingBed() {return target_raw[TEMPSENSOR_BED] < current_raw[TEMP | ||||
|  | ||||
| void disable_heater(); | ||||
| void setWatch(); | ||||
| void updatePID(); | ||||
|  | ||||
| #endif | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user