From 0fcec02db56adca8b01300d6e49eed2246b8e61a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 6 Sep 2017 06:28:32 -0500 Subject: [PATCH] LCD updates --- .../lcd/dogm/ultralcd_st7565_u8glib_VIKI.h | 171 +++++++++--------- .../src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h | 5 +- Marlin/src/lcd/thermistornames.h | 9 + Marlin/src/lcd/ultralcd.cpp | 59 +++--- Marlin/src/lcd/ultralcd.h | 39 ++-- Marlin/src/lcd/ultralcd_impl_DOGM.h | 63 ++++--- Marlin/src/lcd/ultralcd_impl_HD44780.h | 9 +- Marlin/src/lcd/utf_mapper.h | 2 +- 8 files changed, 190 insertions(+), 167 deletions(-) diff --git a/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h b/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h index 48198d2178..2dc33e0ac5 100644 --- a/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h +++ b/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h @@ -23,21 +23,20 @@ #ifndef ULCDST7565_H #define ULCDST7565_H -#include "Marlin.h" - -#if ENABLED(U8GLIB_ST7565_64128N) +#include "../../inc/MarlinConfig.h" +#if !( defined(DOGLCD_SCK) && DOGLCD_SCK >= 0 \ + && defined(DOGLCD_MOSI) && DOGLCD_MOSI >= 0 \ + && defined(DOGLCD_CS) && DOGLCD_CS >= 0 \ + && defined(DOGLCD_A0) && DOGLCD_A0 >= 0 ) + #error "DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, and DOGLCD_A0 are required for VIKI." +#endif #define ST7565_CLK_PIN DOGLCD_SCK #define ST7565_DAT_PIN DOGLCD_MOSI #define ST7565_CS_PIN DOGLCD_CS #define ST7565_A0_PIN DOGLCD_A0 - - - - - #include #define WIDTH 128 @@ -116,119 +115,116 @@ static void ST7565_SWSPI_SND_8BIT(uint8_t val) { #define U8G_DELAY u8g_10MicroDelay() #endif -#define ST7565_CS() { WRITE(ST7565_CS_PIN,1); U8G_DELAY; } -#define ST7565_NCS() { WRITE(ST7565_CS_PIN,0); } -#define ST7565_A0() { WRITE(ST7565_A0_PIN,1); U8G_DELAY; } -#define ST7565_NA0() { WRITE(ST7565_A0_PIN,0); } -#define ST7565_WRITE_BYTE(a) { ST7565_SWSPI_SND_8BIT((uint8_t)a); U8G_DELAY; } -#define ST7560_WriteSequence(count, pointer) { uint8_t *ptr = pointer; for (uint8_t i = 0; i < count; i++) {ST7565_SWSPI_SND_8BIT( *ptr++);} DELAY_10US; } +#define ST7565_CS() do{ WRITE(ST7565_CS_PIN, HIGH); U8G_DELAY; }while(0) +#define ST7565_NCS() WRITE(ST7565_CS_PIN, LOW) +#define ST7565_A0() do{ WRITE(ST7565_A0_PIN, HIGH); U8G_DELAY; }while(0) +#define ST7565_NA0() WRITE(ST7565_A0_PIN, LOW) +#define ST7565_WRITE_BYTE(a) do{ ST7565_SWSPI_SND_8BIT((uint8_t)a); U8G_DELAY; }while(0) +#define ST7560_WriteSequence(count, pointer) do{ uint8_t *ptr = pointer; for (uint8_t i = 0; i < count; ++i) { ST7565_SWSPI_SND_8BIT(*ptr++); } DELAY_10US; }while(0) uint8_t u8g_dev_st7565_64128n_2x_VIKI_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) { switch (msg) { - case U8G_DEV_MSG_INIT: - { OUT_WRITE(ST7565_CS_PIN, LOW); + case U8G_DEV_MSG_INIT: { + OUT_WRITE(ST7565_CS_PIN, LOW); OUT_WRITE(ST7565_DAT_PIN, LOW); OUT_WRITE(ST7565_CLK_PIN, LOW); OUT_WRITE(ST7565_A0_PIN, LOW); - ST7565_CS(); /* disable chip */ - ST7565_NA0(); /* instruction mode */ - ST7565_NCS(); /* enable chip */ + ST7565_CS(); // disable chip + ST7565_NA0(); // instruction mode + ST7565_NCS(); // enable chip + ST7565_WRITE_BYTE(0xA2); // 0xA2: LCD bias 1/9 (according to Displaytech 64128N datasheet) + ST7565_WRITE_BYTE(0xA0); // Normal ADC Select (according to Displaytech 64128N datasheet) - ST7565_WRITE_BYTE(0x0A2); /* 0x0a2: LCD bias 1/9 (according to Displaytech 64128N datasheet) */ - ST7565_WRITE_BYTE(0x0A0); /* Normal ADC Select (according to Displaytech 64128N datasheet) */ + ST7565_WRITE_BYTE(0xC8); // common output mode: set scan direction normal operation/SHL Select; 0xC0 --> SHL = 0; normal; 0xC8 --> SHL = 1 + ST7565_WRITE_BYTE(0x40); // Display start line for Displaytech 64128N - ST7565_WRITE_BYTE(0x0c8); /* common output mode: set scan direction normal operation/SHL Select; 0x0c0 --> SHL = 0; normal; 0x0c8 --> SHL = 1 */ - ST7565_WRITE_BYTE(0x040); /* Display start line for Displaytech 64128N */ + ST7565_WRITE_BYTE(0x28 | 0x04); // power control: turn on voltage converter + //U8G_ESC_DLY(50); // delay 50 ms - hangs after a reset if used - ST7565_WRITE_BYTE(0x028 | 0x04); /* power control: turn on voltage converter */ -// U8G_ESC_DLY(50); /* delay 50 ms - hangs after a reset if used */ + ST7565_WRITE_BYTE(0x28 | 0x06); // power control: turn on voltage regulator + //U8G_ESC_DLY(50); // delay 50 ms - hangs after a reset if used - ST7565_WRITE_BYTE(0x028 | 0x06); /* power control: turn on voltage regulator */ -// U8G_ESC_DLY(50); /* delay 50 ms - hangs after a reset if used */ + ST7565_WRITE_BYTE(0x28 | 0x07); // power control: turn on voltage follower + //U8G_ESC_DLY(50); // delay 50 ms - hangs after a reset if used - ST7565_WRITE_BYTE(0x028 | 0x07); /* power control: turn on voltage follower */ -// U8G_ESC_DLY(50); /* delay 50 ms - hangs after a reset if used */ + ST7565_WRITE_BYTE(0x10); // Set V0 voltage resistor ratio. Setting for controlling brightness of Displaytech 64128N - ST7565_WRITE_BYTE(0x010); /* Set V0 voltage resistor ratio. Setting for controlling brightness of Displaytech 64128N */ + ST7565_WRITE_BYTE(0xA6); // display normal, bit val 0: LCD pixel off. - ST7565_WRITE_BYTE(0x0a6); /* display normal, bit val 0: LCD pixel off. */ + ST7565_WRITE_BYTE(0x81); // set contrast + ST7565_WRITE_BYTE(0x1E); // Contrast value. Setting for controlling brightness of Displaytech 64128N - ST7565_WRITE_BYTE(0x081); /* set contrast */ - ST7565_WRITE_BYTE(0x01e); /* Contrast value. Setting for controlling brightness of Displaytech 64128N */ + ST7565_WRITE_BYTE(0xAF); // display on - - ST7565_WRITE_BYTE(0x0af); /* display on */ - - U8G_ESC_DLY(100); /* delay 100 ms */ - ST7565_WRITE_BYTE(0x0a5); /* display all points; ST7565 */ - U8G_ESC_DLY(100); /* delay 100 ms */ - U8G_ESC_DLY(100); /* delay 100 ms */ - ST7565_WRITE_BYTE(0x0a4); /* normal display */ - ST7565_CS(); /* disable chip */ - } /* end of sequence */ + U8G_ESC_DLY(100); // delay 100 ms + ST7565_WRITE_BYTE(0xA5); // display all points; ST7565 + U8G_ESC_DLY(100); // delay 100 ms + U8G_ESC_DLY(100); // delay 100 ms + ST7565_WRITE_BYTE(0xA4); // normal display + ST7565_CS(); // disable chip + } // end of sequence break; case U8G_DEV_MSG_STOP: break; - case U8G_DEV_MSG_PAGE_NEXT: - { u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - ST7565_CS(); /* disable chip */ - ST7565_NA0(); /* instruction mode */ - ST7565_NCS(); /* enable chip */ - ST7565_WRITE_BYTE(0x010); /* set upper 4 bit of the col adr to 0x10 */ - ST7565_WRITE_BYTE(0x000); /* set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N */ - /* end of sequence */ - ST7565_WRITE_BYTE(0x0b0 | (2*pb->p.page));; /* select current page (ST7565R) */ - ST7565_A0(); /* data mode */ - ST7560_WriteSequence( (uint8_t) pb->width, (uint8_t *)pb->buf); - ST7565_CS(); /* disable chip */ - ST7565_NA0(); /* instruction mode */ - ST7565_NCS(); /* enable chip */ - ST7565_WRITE_BYTE(0x010); /* set upper 4 bit of the col adr to 0x10 */ - ST7565_WRITE_BYTE(0x000); /* set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N */ - /* end of sequence */ - ST7565_WRITE_BYTE(0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - ST7565_A0(); /* data mode */ - ST7560_WriteSequence( (uint8_t) pb->width, (uint8_t *)(pb->buf)+pb->width); - ST7565_CS(); /* disable chip */ + case U8G_DEV_MSG_PAGE_NEXT: { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + ST7565_CS(); // disable chip + ST7565_NA0(); // instruction mode + ST7565_NCS(); // enable chip + ST7565_WRITE_BYTE(0x10); // set upper 4 bit of the col adr to 0x10 + ST7565_WRITE_BYTE(0x00); // set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N + // end of sequence + ST7565_WRITE_BYTE(0xB0 | (2 * pb->p.page)); // select current page (ST7565R) + ST7565_A0(); // data mode + ST7560_WriteSequence((uint8_t)pb->width, (uint8_t*)pb->buf); + ST7565_CS(); // disable chip + ST7565_NA0(); // instruction mode + ST7565_NCS(); // enable chip + ST7565_WRITE_BYTE(0x10); // set upper 4 bit of the col adr to 0x10 + ST7565_WRITE_BYTE(0x00); // set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N + // end of sequence + ST7565_WRITE_BYTE(0xB0 | (2 * pb->p.page + 1)); // select current page (ST7565R) + ST7565_A0(); // data mode + ST7560_WriteSequence((uint8_t)pb->width, (uint8_t*)(pb->buf)+pb->width); + ST7565_CS(); // disable chip } break; case U8G_DEV_MSG_CONTRAST: ST7565_NCS(); - ST7565_NA0(); /* instruction mode */ - ST7565_WRITE_BYTE(0x081); + ST7565_NA0(); // instruction mode + ST7565_WRITE_BYTE(0x81); ST7565_WRITE_BYTE((*(uint8_t *)arg) >> 2); - ST7565_CS(); /* disable chip */ + ST7565_CS(); // disable chip return 1; case U8G_DEV_MSG_SLEEP_ON: - ST7565_NA0(); /* instruction mode */ - ST7565_NCS(); /* enable chip */ - ST7565_WRITE_BYTE(0x0ac); /* static indicator off */ - ST7565_WRITE_BYTE(0x000); /* indicator register set (not sure if this is required) */ - ST7565_WRITE_BYTE(0x0ae); /* display off */ - ST7565_WRITE_BYTE(0x0a5); /* all points on */ - ST7565_CS(); /* disable chip , bugfix 12 nov 2014 */ - /* end of sequence */ + ST7565_NA0(); // instruction mode + ST7565_NCS(); // enable chip + ST7565_WRITE_BYTE(0xAC); // static indicator off + ST7565_WRITE_BYTE(0x00); // indicator register set (not sure if this is required) + ST7565_WRITE_BYTE(0xAE); // display off + ST7565_WRITE_BYTE(0xA5); // all points on + ST7565_CS(); // disable chip , bugfix 12 nov 2014 + // end of sequence return 1; case U8G_DEV_MSG_SLEEP_OFF: - ST7565_NA0(); /* instruction mode */ - ST7565_NCS(); /* enable chip */ - ST7565_WRITE_BYTE(0x0a4); /* all points off */ - ST7565_WRITE_BYTE(0x0af); /* display on */ - U8G_ESC_DLY(50); /* delay 50 ms */ - ST7565_CS(); /* disable chip , bugfix 12 nov 2014 */ - /* end of sequence */ + ST7565_NA0(); // instruction mode + ST7565_NCS(); // enable chip + ST7565_WRITE_BYTE(0xA4); // all points off + ST7565_WRITE_BYTE(0xAF); // display on + U8G_ESC_DLY(50); // delay 50 ms + ST7565_CS(); // disable chip , bugfix 12 nov 2014 + // end of sequence return 1; } return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); } -uint8_t u8g_dev_st7565_64128n_2x_VIKI_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_64128n_2x_VIKI_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_64128n_2x_VIKI_buf}; -u8g_dev_t u8g_dev_st7565_64128n_2x_VIKI_sw_spi = { u8g_dev_st7565_64128n_2x_VIKI_fn, &u8g_dev_st7565_64128n_2x_VIKI_pb, &u8g_com_null_fn}; - +uint8_t u8g_dev_st7565_64128n_2x_VIKI_buf[WIDTH*2] U8G_NOCOMMON; +u8g_pb_t u8g_dev_st7565_64128n_2x_VIKI_pb = { { 16, HEIGHT, 0, 0, 0 }, WIDTH, u8g_dev_st7565_64128n_2x_VIKI_buf }; +u8g_dev_t u8g_dev_st7565_64128n_2x_VIKI_sw_spi = { u8g_dev_st7565_64128n_2x_VIKI_fn, &u8g_dev_st7565_64128n_2x_VIKI_pb, &u8g_com_null_fn }; class U8GLIB_ST7565_64128n_2x_VIKI : public U8GLIB { public: @@ -240,9 +236,6 @@ class U8GLIB_ST7565_64128n_2x_VIKI : public U8GLIB { { } }; - - #pragma GCC reset_options -#endif // U8GLIB_ST7565 #endif // ULCDST7565_H diff --git a/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h b/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h index edefbc93d0..4884c32734 100644 --- a/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h +++ b/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h @@ -23,9 +23,7 @@ #ifndef ULCDST7920_H #define ULCDST7920_H -#include "Marlin.h" - -#if ENABLED(U8GLIB_ST7920) +#include "../../Marlin.h" #define ST7920_CLK_PIN LCD_PINS_D4 #define ST7920_DAT_PIN LCD_PINS_ENABLE @@ -186,5 +184,4 @@ class U8GLIB_ST7920_128X64_RRD : public U8GLIB { #pragma GCC reset_options -#endif // U8GLIB_ST7920 #endif // ULCDST7920_H diff --git a/Marlin/src/lcd/thermistornames.h b/Marlin/src/lcd/thermistornames.h index 2e672a4500..24186f7deb 100644 --- a/Marlin/src/lcd/thermistornames.h +++ b/Marlin/src/lcd/thermistornames.h @@ -20,6 +20,15 @@ * */ +/** + * thermistornames.h + * + * Used by LCD code to obtain a thermistor name + * + * Usage: Set THERMISTOR_ID then #include this file + * to set a new value for THERMISTOR_NAME. + */ + #undef THERMISTOR_NAME // Thermcouples diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 11b412258c..1adb40cd05 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -20,33 +20,43 @@ * */ -#include "ultralcd.h" +#include "../inc/MarlinConfig.h" + #if ENABLED(ULTRA_LCD) -#include "Marlin.h" -#include "language.h" -#include "cardreader.h" -#include "temperature.h" -#include "planner.h" -#include "stepper.h" -#include "configuration_store.h" -#include "utility.h" + +#include "ultralcd.h" + +#include "../sd/cardreader.h" +#include "../module/temperature.h" +#include "../module/planner.h" +#include "../module/stepper.h" +#include "../module/configuration_store.h" + +#include "../Marlin.h" #if HAS_BUZZER && DISABLED(LCD_USE_I2C_BUZZER) - #include "buzzer.h" + #include "../libs/buzzer.h" #endif #if ENABLED(PRINTCOUNTER) - #include "printcounter.h" - #include "duration_t.h" + #include "../module/printcounter.h" + #include "../libs/duration_t.h" +#endif + +#if ENABLED(FILAMENT_LCD_DISPLAY) + #include "../feature/filwidth.h" +#endif + +#if HAS_BED_PROBE + #include "../module/probe.h" #endif #if ENABLED(BLTOUCH) - #include "endstops.h" + #include "../module/endstops.h" #endif -#if ENABLED(AUTO_BED_LEVELING_UBL) - #include "ubl.h" - bool ubl_lcd_map_control = false; +#if HAS_LEVELING + #include "../feature/bedlevel/bedlevel.h" #endif // Initialized by settings.load() @@ -92,7 +102,7 @@ uint16_t max_display_update_time = 0; #endif #if ENABLED(DAC_STEPPER_CURRENT) - #include "stepper_dac.h" //was dac_mcp4728.h MarlinMain uses stepper dac for the m-codes + #include "../feature/dac/stepper_dac.h" //was dac_mcp4728.h MarlinMain uses stepper dac for the m-codes uint8_t driverPercent[XYZE]; #endif @@ -102,9 +112,6 @@ uint16_t max_display_update_time = 0; #define TALL_FONT_CORRECTION 0 #endif - // Function pointer to menu functions. - typedef void (*screenFunc_t)(); - #if HAS_POWER_SWITCH extern bool powersupply_on; #endif @@ -161,7 +168,7 @@ uint16_t max_display_update_time = 0; #endif #if ENABLED(MESH_BED_LEVELING) && ENABLED(LCD_BED_LEVELING) - #include "mesh_bed_leveling.h" + #include "../feature/mbl/mesh_bed_leveling.h" extern void mesh_probing_done(); #endif @@ -443,7 +450,7 @@ uint16_t max_display_update_time = 0; /** * General function to go directly to a screen */ - void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder = 0) { + void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder/*=0*/) { if (currentScreen != screen) { #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) && ENABLED(BABYSTEPPING) @@ -469,14 +476,14 @@ uint16_t max_display_update_time = 0; if (screen == lcd_status_screen) { defer_return_to_status = false; #if ENABLED(AUTO_BED_LEVELING_UBL) - ubl_lcd_map_control = false; + ubl.lcd_map_control = false; #endif screen_history_depth = 0; } lcd_implementation_clear(); // Re-initialize custom characters that may be re-used #if DISABLED(DOGLCD) && ENABLED(AUTO_BED_LEVELING_UBL) - if (!ubl_lcd_map_control) lcd_set_custom_characters( + if (!ubl.lcd_map_control) lcd_set_custom_characters( #if ENABLED(LCD_PROGRESS_BAR) screen == lcd_status_screen #endif @@ -928,7 +935,7 @@ void kill_screen(const char* lcd_msg) { #if ENABLED(SDSUPPORT) if (card.cardOK) { if (card.isFileOpen()) { - if (card.sdprinting) + if (IS_SD_PRINTING) MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_sdcard_pause); else MENU_ITEM(function, MSG_RESUME_PRINT, lcd_sdcard_resume); @@ -2224,7 +2231,7 @@ void kill_screen(const char* lcd_msg) { void _lcd_ubl_map_homing() { defer_return_to_status = true; - ubl_lcd_map_control = true; // Return to the map screen + ubl.lcd_map_control = true; // Return to the map screen if (lcdDrawUpdate) lcd_implementation_drawmenu_static(LCD_HEIGHT < 3 ? 0 : (LCD_HEIGHT > 4 ? 2 : 1), PSTR(MSG_LEVEL_BED_HOMING)); lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index 0a50f173ae..ceed68eed3 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -23,15 +23,21 @@ #ifndef ULTRALCD_H #define ULTRALCD_H -#include "Marlin.h" +#include "../inc/MarlinConfig.h" #if ENABLED(ULTRA_LCD) + #include "../Marlin.h" + #define BUTTON_EXISTS(BN) (defined(BTN_## BN) && BTN_## BN >= 0) #define BUTTON_PRESSED(BN) !READ(BTN_## BN) extern int16_t lcd_preheat_hotend_temp[2], lcd_preheat_bed_temp[2], lcd_preheat_fan_speed[2]; + #if ENABLED(LCD_BED_LEVELING) && ENABLED(PROBE_MANUALLY) + extern bool lcd_wait_for_move; + #endif + int16_t lcd_strlen(const char* s); int16_t lcd_strlen_P(const char* s); void lcd_update(); @@ -74,6 +80,11 @@ #if ENABLED(ULTIPANEL) + // Function pointer to menu functions. + typedef void (*screenFunc_t)(); + + void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder=0); + #define BLEN_A 0 #define BLEN_B 1 // Encoder click is directly connected @@ -91,7 +102,18 @@ #if ENABLED(ADVANCED_PAUSE_FEATURE) void lcd_advanced_pause_show_message(const AdvancedPauseMessage message); - #endif // ADVANCED_PAUSE_FEATURE + #endif + + #if ENABLED(AUTO_BED_LEVELING_UBL) + void lcd_mesh_edit_setup(float initial); + float lcd_mesh_edit(); + void lcd_z_offset_edit_setup(float); + float lcd_z_offset_edit(); + #endif + + #if ENABLED(DELTA_CALIBRATION_MENU) + float lcd_probe_pt(const float &lx, const float &ly); + #endif #else @@ -189,16 +211,9 @@ void lcd_reset_status(); -#if ENABLED(AUTO_BED_LEVELING_UBL) - extern bool ubl_lcd_map_control; - void lcd_mesh_edit_setup(float initial); - float lcd_mesh_edit(); - void lcd_z_offset_edit_setup(float); - float lcd_z_offset_edit(); -#endif - -#if ENABLED(DELTA_CALIBRATION_MENU) - float lcd_probe_pt(const float &lx, const float &ly); +// For i2c define BUZZ to use lcd_buzz +#if ENABLED(LCD_USE_I2C_BUZZER) + #define BUZZ(d,f) lcd_buzz(d, f) #endif #endif // ULTRALCD_H diff --git a/Marlin/src/lcd/ultralcd_impl_DOGM.h b/Marlin/src/lcd/ultralcd_impl_DOGM.h index 8ec19cb275..044df879ad 100644 --- a/Marlin/src/lcd/ultralcd_impl_DOGM.h +++ b/Marlin/src/lcd/ultralcd_impl_DOGM.h @@ -36,27 +36,27 @@ #ifndef ULTRALCD_IMPL_DOGM_H #define ULTRALCD_IMPL_DOGM_H -#include "MarlinConfig.h" +#include "../inc/MarlinConfig.h" -/** - * Implementation of the LCD display routines for a DOGM128 graphic display. - * These are common LCD 128x64 pixel graphic displays. - */ #include "ultralcd.h" -#include "ultralcd_st7920_u8glib_rrd.h" -#include "ultralcd_st7565_u8glib_VIKI.h" -#include "dogm_bitmaps.h" -#include "utility.h" -#include "duration_t.h" + +#if ENABLED(U8GLIB_ST7565_64128N) + #include "dogm/ultralcd_st7565_u8glib_VIKI.h" +#elif ENABLED(U8GLIB_ST7920) + #include "dogm/ultralcd_st7920_u8glib_rrd.h" +#endif + +#include "dogm/dogm_bitmaps.h" +#include "../libs/duration_t.h" #include #if ENABLED(AUTO_BED_LEVELING_UBL) - #include "ubl.h" + #include "../feature/ubl/ubl.h" #endif #if ENABLED(SHOW_BOOTSCREEN) && ENABLED(SHOW_CUSTOM_BOOTSCREEN) - #include "_Bootscreen.h" + #include "../config/_Bootscreen.h" #endif // Only Western languages support big / small fonts @@ -66,57 +66,57 @@ #endif #if ENABLED(USE_SMALL_INFOFONT) - #include "dogm_font_data_6x9_marlin.h" + #include "dogm/dogm_font_data_6x9_marlin.h" #define FONT_STATUSMENU_NAME u8g_font_6x9 #else #define FONT_STATUSMENU_NAME FONT_MENU_NAME #endif -#include "dogm_font_data_Marlin_symbols.h" // The Marlin special symbols +#include "dogm/dogm_font_data_Marlin_symbols.h" // The Marlin special symbols #define FONT_SPECIAL_NAME Marlin_symbols #if DISABLED(SIMULATE_ROMFONT) #if ENABLED(DISPLAY_CHARSET_ISO10646_1) - #include "dogm_font_data_ISO10646_1.h" + #include "dogm/dogm_font_data_ISO10646_1.h" #define FONT_MENU_NAME ISO10646_1_5x7 #elif ENABLED(DISPLAY_CHARSET_ISO10646_PL) - #include "dogm_font_data_ISO10646_1_PL.h" + #include "dogm/dogm_font_data_ISO10646_1_PL.h" #define FONT_MENU_NAME ISO10646_1_PL_5x7 #elif ENABLED(DISPLAY_CHARSET_ISO10646_5) - #include "dogm_font_data_ISO10646_5_Cyrillic.h" + #include "dogm/dogm_font_data_ISO10646_5_Cyrillic.h" #define FONT_MENU_NAME ISO10646_5_Cyrillic_5x7 #elif ENABLED(DISPLAY_CHARSET_ISO10646_KANA) - #include "dogm_font_data_ISO10646_Kana.h" + #include "dogm/dogm_font_data_ISO10646_Kana.h" #define FONT_MENU_NAME ISO10646_Kana_5x7 #elif ENABLED(DISPLAY_CHARSET_ISO10646_GREEK) - #include "dogm_font_data_ISO10646_Greek.h" + #include "dogm/dogm_font_data_ISO10646_Greek.h" #define FONT_MENU_NAME ISO10646_Greek_5x7 #elif ENABLED(DISPLAY_CHARSET_ISO10646_CN) - #include "dogm_font_data_ISO10646_CN.h" + #include "dogm/dogm_font_data_ISO10646_CN.h" #define FONT_MENU_NAME ISO10646_CN #define TALL_FONT_CORRECTION 1 #elif ENABLED(DISPLAY_CHARSET_ISO10646_TR) - #include "dogm_font_data_ISO10646_1_tr.h" + #include "dogm/dogm_font_data_ISO10646_1_tr.h" #define FONT_MENU_NAME ISO10646_TR #elif ENABLED(DISPLAY_CHARSET_ISO10646_CZ) - #include "dogm_font_data_ISO10646_CZ.h" + #include "dogm/dogm_font_data_ISO10646_CZ.h" #define FONT_MENU_NAME ISO10646_CZ #else // fall-back - #include "dogm_font_data_ISO10646_1.h" + #include "dogm/dogm_font_data_ISO10646_1.h" #define FONT_MENU_NAME ISO10646_1_5x7 #endif #else // SIMULATE_ROMFONT #if DISPLAY_CHARSET_HD44780 == JAPANESE - #include "dogm_font_data_HD44780_J.h" + #include "dogm/dogm_font_data_HD44780_J.h" #define FONT_MENU_NAME HD44780_J_5x7 #elif DISPLAY_CHARSET_HD44780 == WESTERN - #include "dogm_font_data_HD44780_W.h" + #include "dogm/dogm_font_data_HD44780_W.h" #define FONT_MENU_NAME HD44780_W_5x7 #elif DISPLAY_CHARSET_HD44780 == CYRILLIC - #include "dogm_font_data_HD44780_C.h" + #include "dogm/dogm_font_data_HD44780_C.h" #define FONT_MENU_NAME HD44780_C_5x7 #else // fall-back - #include "dogm_font_data_ISO10646_1.h" + #include "dogm/dogm_font_data_ISO10646_1.h" #define FONT_MENU_NAME ISO10646_1_5x7 #endif #endif // SIMULATE_ROMFONT @@ -174,11 +174,10 @@ U8GLIB_LM6059_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4 stripes #elif ENABLED(U8GLIB_ST7565_64128N) // The MaKrPanel, Mini Viki, and Viki 2.0, ST7565 controller -// U8GLIB_ST7565_64128n_2x_VIKI u8g(0); // using SW-SPI DOGLCD_MOSI != -1 && DOGLCD_SCK - U8GLIB_ST7565_64128n_2x_VIKI u8g(DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0); // using SW-SPI - //U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0); // 8 stripes - //U8GLIB_NHD_C12864_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4 stripes HWSPI - + //U8GLIB_ST7565_64128n_2x_VIKI u8g(0); // using SW-SPI DOGLCD_MOSI != -1 && DOGLCD_SCK + U8GLIB_ST7565_64128n_2x_VIKI u8g(DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0); // using SW-SPI + //U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0); // 8 stripes + //U8GLIB_NHD_C12864_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4 stripes HWSPI #elif ENABLED(U8GLIB_SSD1306) // Generic support for SSD1306 OLED I2C LCDs //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 8 stripes diff --git a/Marlin/src/lcd/ultralcd_impl_HD44780.h b/Marlin/src/lcd/ultralcd_impl_HD44780.h index 8bcfee94c7..05cd5f72a1 100644 --- a/Marlin/src/lcd/ultralcd_impl_HD44780.h +++ b/Marlin/src/lcd/ultralcd_impl_HD44780.h @@ -28,11 +28,14 @@ * These are the most common LCD character displays. */ -#include "utility.h" -#include "duration_t.h" +#include "../inc/MarlinConfig.h" + +#if LCD_HEIGHT > 3 + #include "../libs/duration_t.h" +#endif #if ENABLED(AUTO_BED_LEVELING_UBL) - #include "ubl.h" + #include "../feature/ubl/ubl.h" #if ENABLED(ULTIPANEL) #define ULTRA_X_PIXELS_PER_CHAR 5 diff --git a/Marlin/src/lcd/utf_mapper.h b/Marlin/src/lcd/utf_mapper.h index 13fb0187ed..910d7a0d0b 100644 --- a/Marlin/src/lcd/utf_mapper.h +++ b/Marlin/src/lcd/utf_mapper.h @@ -23,7 +23,7 @@ #ifndef UTF_MAPPER_H #define UTF_MAPPER_H -#include "language.h" +#include "../inc/MarlinConfig.h" #if ENABLED(DOGLCD) #define HARDWARE_CHAR_OUT u8g.print