diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 3a93bc63ef9a612011893cb5a09dd730a7b142cc..885e07c5357a9535a96e0c5d7c772f2e975b2744 100755
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -7294,18 +7294,12 @@ inline void gcode_M503() {
unsigned long int runout_beep = 0;
void filament_change_beep() {
- millis_t ms = millis();
- if (ms >= next_buzz) {
- if (runout_beep <= FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS ) { // Only beep as long as we are supposed to!
- BUZZ(300, 2000);
- next_buzz = ms + 2500; // Beep every 2.5s while waiting
- runout_beep++;
- }
- else if (runout_beep > FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS &&
- runout_beep <= (FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS + 5)) { // End with a burst of short beeps
- BUZZ(200, 2000);
- next_buzz = ms + 400; // Beep
- runout_beep++;
+ const millis_t ms = millis();
+ if (ELAPSED(ms, next_buzz)) {
+ if (runout_beep <= FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS + 5) { // Only beep as long as we're supposed to
+ next_buzz = ms + (runout_beep <= FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS ? 2500 : 400);
+ BUZZ(300, 2000);
+ runout_beep++;
}
}
}