mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-27 22:08:02 +00:00
Cleanup around updatePID
This commit is contained in:
parent
75a58ee4b8
commit
1ed86adf9c
@ -32,8 +32,6 @@ void GcodeSuite::M304() {
|
|||||||
if (parser.seen('I')) thermalManager.bedKi = scalePID_i(parser.value_float());
|
if (parser.seen('I')) thermalManager.bedKi = scalePID_i(parser.value_float());
|
||||||
if (parser.seen('D')) thermalManager.bedKd = scalePID_d(parser.value_float());
|
if (parser.seen('D')) thermalManager.bedKd = scalePID_d(parser.value_float());
|
||||||
|
|
||||||
thermalManager.updatePID();
|
|
||||||
|
|
||||||
SERIAL_ECHO_START();
|
SERIAL_ECHO_START();
|
||||||
SERIAL_ECHOPAIR(" p:", thermalManager.bedKp);
|
SERIAL_ECHOPAIR(" p:", thermalManager.bedKp);
|
||||||
SERIAL_ECHOPAIR(" i:", unscalePID_i(thermalManager.bedKi));
|
SERIAL_ECHOPAIR(" i:", unscalePID_i(thermalManager.bedKi));
|
||||||
|
@ -217,6 +217,12 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS],
|
|||||||
|
|
||||||
#if HAS_PID_HEATING
|
#if HAS_PID_HEATING
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PID Autotuning (M303)
|
||||||
|
*
|
||||||
|
* Alternately heat and cool the nozzle, observing its behavior to
|
||||||
|
* determine the best PID values to achieve a stable temperature.
|
||||||
|
*/
|
||||||
void Temperature::PID_autotune(const float temp, const int8_t hotend, const int8_t ncycles, const bool set_result/*=false*/) {
|
void Temperature::PID_autotune(const float temp, const int8_t hotend, const int8_t ncycles, const bool set_result/*=false*/) {
|
||||||
float input = 0.0;
|
float input = 0.0;
|
||||||
int cycles = 0;
|
int cycles = 0;
|
||||||
@ -466,7 +472,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS],
|
|||||||
bedKp = workKp; \
|
bedKp = workKp; \
|
||||||
bedKi = scalePID_i(workKi); \
|
bedKi = scalePID_i(workKi); \
|
||||||
bedKd = scalePID_d(workKd); \
|
bedKd = scalePID_d(workKd); \
|
||||||
updatePID(); }while(0)
|
}while(0)
|
||||||
|
|
||||||
#define _SET_EXTRUDER_PID() do { \
|
#define _SET_EXTRUDER_PID() do { \
|
||||||
PID_PARAM(Kp, hotend) = workKp; \
|
PID_PARAM(Kp, hotend) = workKp; \
|
||||||
@ -502,14 +508,6 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS],
|
|||||||
|
|
||||||
Temperature::Temperature() { }
|
Temperature::Temperature() { }
|
||||||
|
|
||||||
void Temperature::updatePID() {
|
|
||||||
#if ENABLED(PIDTEMP)
|
|
||||||
#if ENABLED(PID_EXTRUSION_SCALING)
|
|
||||||
last_e_position = 0;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int Temperature::getHeaterPower(int heater) {
|
int Temperature::getHeaterPower(int heater) {
|
||||||
return heater < 0 ? soft_pwm_amount_bed : soft_pwm_amount[heater];
|
return heater < 0 ? soft_pwm_amount_bed : soft_pwm_amount[heater];
|
||||||
}
|
}
|
||||||
|
@ -430,12 +430,19 @@ class Temperature {
|
|||||||
*/
|
*/
|
||||||
#if HAS_PID_HEATING
|
#if HAS_PID_HEATING
|
||||||
static void PID_autotune(const float temp, const int8_t hotend, const int8_t ncycles, const bool set_result=false);
|
static void PID_autotune(const float temp, const int8_t hotend, const int8_t ncycles, const bool set_result=false);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
#if ENABLED(PIDTEMP)
|
||||||
* Update the temp manager when PID values change
|
/**
|
||||||
*/
|
* Update the temp manager when PID values change
|
||||||
static void updatePID();
|
*/
|
||||||
|
FORCE_INLINE static void updatePID() {
|
||||||
|
#if ENABLED(PID_EXTRUSION_SCALING)
|
||||||
|
last_e_position = 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(BABYSTEPPING)
|
#if ENABLED(BABYSTEPPING)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user