diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp index 9dcc90b75..1204f944f 100644 --- a/Marlin/src/Marlin.cpp +++ b/Marlin/src/Marlin.cpp @@ -359,10 +359,6 @@ void quickstop_stepper() { SYNC_PLAN_POSITION_KINEMATIC(); } -#if ENABLED(LIN_ADVANCE) - #include "gcode/feature/advance/M900.h" -#endif - #if ENABLED(HAVE_TMC2130) #include "feature/tmc2130.h" #include "gcode/feature/trinamic/M906.h" diff --git a/Marlin/src/gcode/feature/advance/M900.h b/Marlin/src/gcode/feature/advance/M900.cpp similarity index 86% rename from Marlin/src/gcode/feature/advance/M900.h rename to Marlin/src/gcode/feature/advance/M900.cpp index c5734943c..074dc506a 100644 --- a/Marlin/src/gcode/feature/advance/M900.h +++ b/Marlin/src/gcode/feature/advance/M900.cpp @@ -20,6 +20,14 @@ * */ +#include "../../../inc/MarlinConfig.h" + +#if ENABLED(LIN_ADVANCE) + +#include "../../gcode.h" +#include "../../../module/planner.h" +#include "../../../module/stepper.h" + /** * M900: Set and/or Get advance K factor and WH/D ratio * @@ -27,7 +35,7 @@ * R Set ratio directly (overrides WH/D) * W H D Set ratio from WH/D */ -void gcode_M900() { +void GcodeSuite::M900() { stepper.synchronize(); const float newK = parser.floatval('K', -1); @@ -39,7 +47,7 @@ void gcode_M900() { newW = parser.floatval('W', -1), newH = parser.floatval('H', -1); if (newD >= 0 && newW >= 0 && newH >= 0) - newR = newD ? (newW * newH) / (sq(newD * 0.5) * M_PI) : 0; + newR = newD ? (newW * newH) / CIRCLE_AREA(newD * 0.5) : 0; } if (newR >= 0) planner.advance_ed_ratio = newR; @@ -50,3 +58,5 @@ void gcode_M900() { if (ratio) SERIAL_ECHO(ratio); else SERIAL_ECHOPGM("Auto"); SERIAL_EOL(); } + +#endif // LIN_ADVANCE diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index f2b701722..3df717908 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -122,7 +122,6 @@ extern void gcode_M165(); extern void gcode_M350(); extern void gcode_M351(); extern void gcode_M355(); -extern void gcode_M900(); extern void gcode_M906(); extern void gcode_M911(); extern void gcode_M912(); @@ -658,9 +657,7 @@ void GcodeSuite::process_next_command() { #endif #if ENABLED(LIN_ADVANCE) - case 900: // M900: Set advance K factor. - gcode_M900(); - break; + case 900: M900(); break; // M900: Set advance K factor. #endif #if ENABLED(HAVE_TMC2130)