|
|
|
@ -419,7 +419,8 @@ void MarlinUI::status_screen() {
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#if DISABLED(PROGRESS_MSG_ONCE) || (PROGRESS_MSG_EXPIRE > 0)
|
|
|
|
|
millis_t ms = millis();
|
|
|
|
|
#define GOT_MS
|
|
|
|
|
const millis_t ms = millis();
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// If the message will blink rather than expire...
|
|
|
|
@ -464,31 +465,40 @@ void MarlinUI::status_screen() {
|
|
|
|
|
|
|
|
|
|
#endif // HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ULTIPANEL_FEEDMULTIPLY) && HAS_ENCODER_ACTION
|
|
|
|
|
#if ENABLED(ULTIPANEL_FEEDMULTIPLY)
|
|
|
|
|
|
|
|
|
|
const int16_t old_frm = feedrate_percentage;
|
|
|
|
|
int16_t new_frm = old_frm + (int32_t)encoderPosition;
|
|
|
|
|
|
|
|
|
|
const int16_t new_frm = feedrate_percentage + (int32_t)encoderPosition;
|
|
|
|
|
// Dead zone at 100% feedrate
|
|
|
|
|
if ((feedrate_percentage < 100 && new_frm > 100) || (feedrate_percentage > 100 && new_frm < 100)) {
|
|
|
|
|
feedrate_percentage = 100;
|
|
|
|
|
encoderPosition = 0;
|
|
|
|
|
}
|
|
|
|
|
else if (feedrate_percentage == 100) {
|
|
|
|
|
if ((int32_t)encoderPosition > ENCODER_FEEDRATE_DEADZONE) {
|
|
|
|
|
feedrate_percentage += (int32_t)encoderPosition - (ENCODER_FEEDRATE_DEADZONE);
|
|
|
|
|
encoderPosition = 0;
|
|
|
|
|
}
|
|
|
|
|
else if ((int32_t)encoderPosition < -(ENCODER_FEEDRATE_DEADZONE)) {
|
|
|
|
|
feedrate_percentage += (int32_t)encoderPosition + ENCODER_FEEDRATE_DEADZONE;
|
|
|
|
|
encoderPosition = 0;
|
|
|
|
|
}
|
|
|
|
|
if (old_frm == 100) {
|
|
|
|
|
if ((int32_t)encoderPosition > ENCODER_FEEDRATE_DEADZONE)
|
|
|
|
|
new_frm -= ENCODER_FEEDRATE_DEADZONE;
|
|
|
|
|
else if ((int32_t)encoderPosition < -(ENCODER_FEEDRATE_DEADZONE))
|
|
|
|
|
new_frm += ENCODER_FEEDRATE_DEADZONE;
|
|
|
|
|
else
|
|
|
|
|
new_frm = old_frm;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
else if ((old_frm < 100 && new_frm > 100) || (old_frm > 100 && new_frm < 100))
|
|
|
|
|
new_frm = 100;
|
|
|
|
|
|
|
|
|
|
new_frm = constrain(new_frm, 10, 999);
|
|
|
|
|
|
|
|
|
|
if (old_frm != new_frm) {
|
|
|
|
|
feedrate_percentage = new_frm;
|
|
|
|
|
encoderPosition = 0;
|
|
|
|
|
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
|
|
|
|
static millis_t next_beep;
|
|
|
|
|
#ifndef GOT_MS
|
|
|
|
|
const millis_t ms = millis();
|
|
|
|
|
#endif
|
|
|
|
|
if (ELAPSED(ms, next_beep)) {
|
|
|
|
|
BUZZ(FEEDRATE_CHANGE_BEEP_DURATION, FEEDRATE_CHANGE_BEEP_FREQUENCY);
|
|
|
|
|
next_beep = ms + 500UL;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
feedrate_percentage = constrain(feedrate_percentage, 10, 999);
|
|
|
|
|
|
|
|
|
|
#endif // ULTIPANEL_FEEDMULTIPLY
|
|
|
|
|
|
|
|
|
|
draw_status_screen();
|
|
|
|
|