diff --git a/Marlin/src/feature/Max7219_Debug_LEDs.cpp b/Marlin/src/feature/Max7219_Debug_LEDs.cpp index 1291aebdc8..dd4f4bf47e 100644 --- a/Marlin/src/feature/Max7219_Debug_LEDs.cpp +++ b/Marlin/src/feature/Max7219_Debug_LEDs.cpp @@ -255,6 +255,10 @@ void Max7219_Clear_Column(const uint8_t _COL_) { #endif } +void Max7219_Clear() { + for (uint8_t r = 0; r < 8; r++) _Max7219_Set_Reg(r, 0); +} + void Max7219_Set_2_Rows(const uint8_t y, uint16_t val) { if (y > 6) return Max7219_Error(PSTR("Max7219_Set_2_Rows"), y, val); Max7219_Set_Row(y + 0, val & 0xFF); val >>= 8; diff --git a/Marlin/src/feature/Max7219_Debug_LEDs.h b/Marlin/src/feature/Max7219_Debug_LEDs.h index dec159cee9..f00f231749 100644 --- a/Marlin/src/feature/Max7219_Debug_LEDs.h +++ b/Marlin/src/feature/Max7219_Debug_LEDs.h @@ -77,6 +77,9 @@ void Max7219_Clear_Column(const uint8_t col); void Max7219_Set_Row(const uint8_t row, const uint8_t val); void Max7219_Clear_Row(const uint8_t row); +// Quickly clear the whole matrix +void Max7219_Clear(); + // Apply custom code to update the matrix void Max7219_idle_tasks(); diff --git a/Marlin/src/gcode/feature/leds/M7219.cpp b/Marlin/src/gcode/feature/leds/M7219.cpp index 36f9f7c7ca..8aaa3ea4bd 100644 --- a/Marlin/src/gcode/feature/leds/M7219.cpp +++ b/Marlin/src/gcode/feature/leds/M7219.cpp @@ -39,7 +39,7 @@ */ void GcodeSuite::M7219() { if (parser.seen('I')) - Max7219_init(); + Max7219_Clear(); else if (parser.seenval('R')) { const uint8_t r = parser.value_int(); Max7219_Set_Row(r, parser.byteval('V'));