From 296b0414afbe99cae0bb5aa177a92830e50e9e74 Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Tue, 7 Feb 2023 09:09:05 +0100 Subject: [PATCH] Optimize execute_extruder_sequence Save 64B by refactoring of execute_extruder_sequence. --- Firmware/mmu2.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Firmware/mmu2.cpp b/Firmware/mmu2.cpp index 7192652bd..a8714f0eb 100644 --- a/Firmware/mmu2.cpp +++ b/Firmware/mmu2.cpp @@ -834,12 +834,8 @@ void MMU2::execute_extruder_sequence(const E_Step *sequence, uint8_t steps) { Enable_E0(); const E_Step *step = sequence; - for (uint8_t i = 0; i < steps; i++) { - const float es = pgm_read_float(&(step->extrude)); - const feedRate_t fr_mm_s = pgm_read_float(&(step->feedRate)); - planner_set_current_position_E(planner_get_current_position_E() + es); - planner_line_to_current_position(fr_mm_s); - + for (uint8_t i = steps; i ; --i) { + MoveE(pgm_read_float(&(step->extrude)), pgm_read_float(&(step->feedRate))); step++; } planner_synchronize(); // it looks like it's better to sync the moves at the end - smoother move (if the sequence is not too long).