diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6cd61afe..0adb8a88 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3123,6 +3123,7 @@ void process_commands() farm_mode = 0; lcd_printer_connected(); eeprom_update_byte((unsigned char *)EEPROM_FARM_MODE, farm_mode); + lcd_update(2); break; diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index d2f6e3f8..851d1bfb 100644 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1705,7 +1705,7 @@ ISR(TIMER0_COMPB_vect) ADMUX = ((1 << REFS0) | (TEMP_0_PIN & 0x07)); ADCSRA |= 1< 0) @@ -4488,40 +4521,7 @@ void lcd_update(uint8_t lcdDrawUpdateOverride) lcd_timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; } - if (LCD_CLICKED) { - lcd_timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; - }/* - for (int i = 0; i < 500; i++) { - //lcd_buttons_update(); - if (!LCD_CLICKED) i = 1000; - else delay(50); - - - // if (i >= 500) lcd_goto_menu(lcd_calibration_menu); - } - - } - */ - /*if(LCD_CLICKED){ - SERIAL_ECHOLNPGM("ok"); - lcd_timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; - if (long_press == false) { - long_press = true; - long_press_timer = millis(); - SERIAL_ECHOLNPGM("Su zde!"); - } - else { - if ((millis() - long_press_timer) > LONG_PRESS_TIME) { - SERIAL_ECHOLNPGM("Su tady!"); - lcd_goto_menu(lcd_settings_menu); - long_press = false; - } - } - } - else { - long_press = false; - SERIAL_ECHOLNPGM("Jaj!"); - }*/ + /*if (LCD_CLICKED)*/ lcd_timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; #endif//ULTIPANEL #ifdef DOGLCD // Changes due to different driver architecture of the DOGM display @@ -4656,9 +4656,55 @@ void lcd_buttons_update() if (READ(BTN_EN1) == 0) newbutton |= EN_A; if (READ(BTN_EN2) == 0) newbutton |= EN_B; #if BTN_ENC > 0 - if ((blocking_enc < millis()) && (READ(BTN_ENC) == 0)) - newbutton |= EN_C; -#endif + /* if (READ(BTN_ENC) == 0) { //button pressed + if (button_pressed == false) { + button_pressed = true; + long_press_delay = millis(); + } + if (((millis() - long_press_delay) > 2000) && long_press_active == false) { + long_press_active = true; + lcd_goto_menu(lcd_move_z); + } + } + else { //button not pressed + if (button_pressed) { + button_pressed = false; + if (long_press_active) + { + long_press_active = false; + } + else { + newbutton |= EN_C; + } + } + + }*/ + if (READ(BTN_ENC) == 0) { + if (button_pressed == false) { + long_press_delay = millis(); + //long_press_count = 0; + //if (blocking_enc < millis()) + button_pressed = true; + } + if (((millis() - long_press_delay) > 2000) && long_press_active == false) { + + // blocking_enc = millis() + 500; + long_press_active = true; + //lcd_ignore_click(true); + lcd_goto_menu(lcd_move_z); + } + + } + else if(button_pressed){ + if (long_press_active == false) { + newbutton |= EN_C; + } + /*else { + long_press_active = false; + }*/ + } + +#endif buttons = newbutton; #ifdef LCD_HAS_SLOW_BUTTONS buttons |= slow_buttons; diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 76136ff8..8a796687 100644 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -230,6 +230,7 @@ void lcd_farm_sdcard_menu_w(); void lcd_wait_for_cool_down(); void adjust_bed_reset(); void lcd_extr_cal_reset(); +//static void _lcd_move(const char *name, int axis, int min, int max, bool called_from_move_menu = true); union MenuData;