Various Laser / Spindle improvements (#15335)

This commit is contained in:
Ben
2020-04-03 01:31:08 +01:00
committed by GitHub
parent e7e9304819
commit df8b7dfc40
24 changed files with 776 additions and 169 deletions

View File

@@ -570,8 +570,12 @@ void MarlinUI::draw_status_screen() {
// Laser / Spindle
#if DO_DRAW_CUTTER
if (cutter.power && PAGE_CONTAINS(STATUS_CUTTER_TEXT_Y - INFO_FONT_ASCENT, STATUS_CUTTER_TEXT_Y - 1)) {
lcd_put_u8str(STATUS_CUTTER_TEXT_X, STATUS_CUTTER_TEXT_Y, i16tostr3rj(cutter.powerPercent(cutter.power)));
lcd_put_wchar('%');
lcd_put_u8str(STATUS_CUTTER_TEXT_X, STATUS_CUTTER_TEXT_Y, i16tostr3rj(cutter.power));
#if CUTTER_DISPLAY_IS(PERCENT)
lcd_put_wchar('%');
#elif CUTTER_DISPLAY_IS(RPM)
lcd_put_wchar('K');
#endif
}
#endif

View File

@@ -90,6 +90,7 @@ namespace Language_en {
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" Conf");
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Preheat Custom");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Cooldown");
PROGMEM Language_Str MSG_CUTTER_FREQUENCY = _UxGT("Frequency");
PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Laser Control");
PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Laser Off");
PROGMEM Language_Str MSG_LASER_ON = _UxGT("Laser On");
@@ -603,7 +604,7 @@ namespace Language_en {
PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correction");
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Smoothing");
PROGMEM Language_Str MSG_LEVEL_X_AXIS = _UxGT("Level X Axis");
PROGMEM Language_Str MSG_AUTO_CALIBRATE = _UxGT("Auto Calibrate");
PROGMEM Language_Str MSG_HEATER_TIMEOUT = _UxGT("Heater Timeout");

View File

@@ -36,18 +36,29 @@
START_MENU();
BACK_ITEM(MSG_MAIN);
if (cutter.enabled()) {
#if ENABLED(SPINDLE_LASER_PWM)
EDIT_ITEM(CUTTER_MENU_TYPE, MSG_CUTTER(POWER), &cutter.power, SPEED_POWER_MIN, SPEED_POWER_MAX);
#endif
#if ENABLED(SPINDLE_LASER_PWM)
EDIT_ITEM_FAST(CUTTER_MENU_POWER_TYPE, MSG_CUTTER(POWER), &cutter.setPower, cutter.interpret_power(SPEED_POWER_MIN), cutter.interpret_power(SPEED_POWER_MAX),
[]{
if (cutter.isOn) {
cutter.power = cutter.setPower;
}
});
#endif
if (cutter.enabled() && cutter.isOn)
ACTION_ITEM(MSG_CUTTER(OFF), cutter.disable);
}
else {
ACTION_ITEM(MSG_CUTTER(ON), cutter.enable_forward);
#if ENABLED(SPINDLE_CHANGE_DIR)
ACTION_ITEM(MSG_SPINDLE_REVERSE, cutter.enable_reverse);
#endif
}
#if ENABLED(MARLIN_DEV_MODE)
#if ENABLED(HAL_CAN_SET_PWM_FREQ) && defined(SPINDLE_LASER_FREQUENCY)
EDIT_ITEM_FAST(CUTTER_MENU_FREQUENCY_TYPE, MSG_CUTTER_FREQUENCY, &cutter.frequency, 2000, 50000,[]{ cutter.refresh_frequency();});
#endif
#endif
END_MENU();
}