0
0
Fork 0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2025-03-10 08:32:54 +00:00

🩹 Fix Ender-3 V2 with no fan

This commit is contained in:
Scott Lahteine 2023-03-29 21:50:04 -05:00
parent 85e28f3123
commit 59a2cb032f
2 changed files with 22 additions and 21 deletions
Marlin/src/lcd/e3v2

View file

@ -3862,7 +3862,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
Draw_Menu_Item(row, ICON_Back, F("Cancel"));
else {
thermalManager.setTargetHotend(0, 0);
thermalManager.set_fan_speed(0, 0);
TERN_(HAS_FAN, thermalManager.set_fan_speed(0, 0));
Redraw_Menu(false, true, true);
}
break;
@ -4474,7 +4474,7 @@ void CrealityDWINClass::Popup_Control() {
case ETemp:
if (selection == 0) {
thermalManager.setTargetHotend(EXTRUDE_MINTEMP, 0);
thermalManager.set_fan_speed(0, MAX_FAN_SPEED);
TERN_(HAS_FAN, thermalManager.set_fan_speed(0, MAX_FAN_SPEED));
Draw_Menu(PreheatHotend);
}
else

View file

@ -143,25 +143,27 @@ void _draw_axis_value(const AxisEnum axis, const char *value, const bool blink,
#endif // LCD_SHOW_E_TOTAL
//
// Fan Icon and Percentage
//
FORCE_INLINE void _draw_fan_status(const uint16_t x, const uint16_t y) {
const uint16_t fanx = (4 * STATUS_CHR_WIDTH - STATUS_FAN_WIDTH) / 2;
const bool fan_on = !!thermalManager.scaledFanSpeed(0);
if (fan_on) {
DWIN_ICON_Animation(0, fan_on, ICON, ICON_Fan0, ICON_Fan3, x + fanx, y, 25);
dwin_string.set(i8tostr3rj(thermalManager.scaledFanSpeedPercent(0)));
dwin_string.add('%');
DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + STATUS_FAN_HEIGHT, S(dwin_string.string()));
#if HAS_FAN
//
// Fan Icon and Percentage
//
FORCE_INLINE void _draw_fan_status(const uint16_t x, const uint16_t y) {
const uint16_t fanx = (4 * STATUS_CHR_WIDTH - STATUS_FAN_WIDTH) / 2;
const bool fan_on = !!thermalManager.scaledFanSpeed(0);
if (fan_on) {
DWIN_ICON_Animation(0, fan_on, ICON, ICON_Fan0, ICON_Fan3, x + fanx, y, 25);
dwin_string.set(i8tostr3rj(thermalManager.scaledFanSpeedPercent(0)));
dwin_string.add('%');
DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + STATUS_FAN_HEIGHT, S(dwin_string.string()));
}
else {
DWIN_ICON_AnimationControl(0x0000); // disable all icon animations (this is the only one)
DWIN_ICON_Show(ICON, ICON_Fan0, x + fanx, y);
dwin_string.set(F(" "));
DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + STATUS_FAN_HEIGHT, S(dwin_string.string()));
}
}
else {
DWIN_ICON_AnimationControl(0x0000); // disable all icon animations (this is the only one)
DWIN_ICON_Show(ICON, ICON_Fan0, x + fanx, y);
dwin_string.set(F(" "));
DWIN_Draw_String(true, font14x28, Color_White, Color_Bg_Black, x, y + STATUS_FAN_HEIGHT, S(dwin_string.string()));
}
}
#endif
/**
* Draw a single heater icon with current and target temperature, at the given XY
@ -300,7 +302,6 @@ void MarlinUI::draw_status_screen() {
#if HAS_HEATED_BED
_draw_heater_status(H_BED, hx, STATUS_HEATERS_Y);
#endif
#if HAS_FAN
_draw_fan_status(LCD_PIXEL_WIDTH - STATUS_CHR_WIDTH * 5, STATUS_FAN_Y);
#endif