MKS_MINI, FYSETC RGB, backlight (#15334)
This commit is contained in:
parent
ddd9d9032a
commit
04e4eb35be
|
@ -974,6 +974,12 @@ void setup() {
|
|||
|
||||
// UI must be initialized before EEPROM
|
||||
// (because EEPROM code calls the UI).
|
||||
|
||||
// Set up LEDs early
|
||||
#if HAS_COLOR_LEDS
|
||||
leds.setup();
|
||||
#endif
|
||||
|
||||
ui.init();
|
||||
ui.reset_status();
|
||||
|
||||
|
@ -1068,10 +1074,6 @@ void setup() {
|
|||
OUT_WRITE(STAT_LED_BLUE_PIN, LOW); // OFF
|
||||
#endif
|
||||
|
||||
#if HAS_COLOR_LEDS
|
||||
leds.setup();
|
||||
#endif
|
||||
|
||||
#if HAS_CASE_LIGHT
|
||||
#if DISABLED(CASE_LIGHT_USE_NEOPIXEL)
|
||||
if (PWM_PIN(CASE_LIGHT_PIN)) SET_PWM(CASE_LIGHT_PIN); else SET_OUTPUT(CASE_LIGHT_PIN);
|
||||
|
|
|
@ -170,32 +170,45 @@ uint8_t u8g_dev_uc1701_mini12864_HAL_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t m
|
|||
case U8G_DEV_MSG_INIT:
|
||||
u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);
|
||||
u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_HAL_init_seq);
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
u8g_Delay(5);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case U8G_DEV_MSG_STOP: break;
|
||||
|
||||
case U8G_DEV_MSG_PAGE_NEXT: {
|
||||
u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem);
|
||||
|
||||
u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_HAL_data_start);
|
||||
u8g_WriteByte(u8g, dev, 0x0B0 | (2*pb->p.page)); /* select current page */
|
||||
u8g_SetAddress(u8g, dev, 1); /* data mode */
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
u8g_Delay(5);
|
||||
#endif
|
||||
u8g_WriteByte(u8g, dev, 0x0B0 | (2 * pb->p.page)); /* select current page */
|
||||
u8g_SetAddress(u8g, dev, 1); /* data mode */
|
||||
u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)pb->buf);
|
||||
u8g_SetChipSelect(u8g, dev, 0);
|
||||
|
||||
u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_HAL_data_start);
|
||||
u8g_WriteByte(u8g, dev, 0x0B0 | (2*pb->p.page+1)); /* select current page */
|
||||
u8g_SetAddress(u8g, dev, 1); /* data mode */
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
u8g_Delay(5);
|
||||
#endif
|
||||
u8g_WriteByte(u8g, dev, 0x0B0 | (2 * pb->p.page + 1)); /* select current page */
|
||||
u8g_SetAddress(u8g, dev, 1); /* data mode */
|
||||
u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width);
|
||||
u8g_SetChipSelect(u8g, dev, 0);
|
||||
} break;
|
||||
|
||||
case U8G_DEV_MSG_CONTRAST:
|
||||
u8g_SetChipSelect(u8g, dev, 1);
|
||||
u8g_SetAddress(u8g, dev, 0); /* instruction mode */
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
u8g_Delay(5);
|
||||
#endif
|
||||
u8g_SetAddress(u8g, dev, 0); /* instruction mode */
|
||||
u8g_WriteByte(u8g, dev, 0x081);
|
||||
u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2);
|
||||
u8g_SetChipSelect(u8g, dev, 0);
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
u8g_Delay(5);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg);
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* ultralcd_DOGM.cpp
|
||||
* lcd/dogm/ultralcd_DOGM.h
|
||||
*
|
||||
* Implementation of the LCD display routines for a DOGM128 graphic display.
|
||||
* by STB for ErikZalm/Marlin. Common LCD 128x64 pixel graphic displays.
|
||||
|
@ -30,9 +30,9 @@
|
|||
* License: http://opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
* With the use of:
|
||||
* u8glib by Oliver Kraus
|
||||
* https://github.com/olikraus/U8glib_Arduino
|
||||
* License: http://opensource.org/licenses/BSD-3-Clause
|
||||
* u8glib by Oliver Kraus
|
||||
* https://github.com/olikraus/U8glib_Arduino
|
||||
* License: http://opensource.org/licenses/BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include "../../inc/MarlinConfigPre.h"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#pragma once
|
||||
|
||||
/**
|
||||
* ultralcd_DOGM.h
|
||||
* lcd/dogm/ultralcd_DOGM.h
|
||||
*/
|
||||
|
||||
#include "../../inc/MarlinConfigPre.h"
|
||||
|
@ -30,7 +30,8 @@
|
|||
#include <U8glib.h>
|
||||
#include "HAL_LCD_class_defines.h"
|
||||
|
||||
// LCD selection
|
||||
//#define ALTERNATIVE_LCD
|
||||
|
||||
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
|
||||
#define U8G_CLASS U8GLIB_ST7920_128X64_4X
|
||||
#if DISABLED(SDSUPPORT) && (LCD_PINS_D4 == SCK_PIN) && (LCD_PINS_ENABLE == MOSI_PIN)
|
||||
|
@ -40,102 +41,159 @@
|
|||
#endif
|
||||
|
||||
#elif ENABLED(U8GLIB_ST7920)
|
||||
|
||||
// RepRap Discount Full Graphics Smart Controller
|
||||
|
||||
#if DISABLED(SDSUPPORT) && (LCD_PINS_D4 == SCK_PIN) && (LCD_PINS_ENABLE == MOSI_PIN)
|
||||
#define U8G_CLASS U8GLIB_ST7920_128X64_4X_HAL
|
||||
#define U8G_PARAM LCD_PINS_RS // 2 stripes, HW SPI (shared with SD card, on AVR does not use standard LCD adapter)
|
||||
#define U8G_CLASS U8GLIB_ST7920_128X64_4X_HAL // 2 stripes, HW SPI (Shared with SD card. Non-standard LCD adapter on AVR.)
|
||||
#define U8G_PARAM LCD_PINS_RS
|
||||
#else
|
||||
//#define U8G_CLASS U8GLIB_ST7920_128X64_4X
|
||||
//#define U8G_PARAM LCD_PINS_D4, LCD_PINS_ENABLE, LCD_PINS_RS // Original u8glib device. 2 stripes, SW SPI
|
||||
#define U8G_CLASS U8GLIB_ST7920_128X64_RRD
|
||||
#define U8G_PARAM LCD_PINS_D4, LCD_PINS_ENABLE, LCD_PINS_RS // Number of stripes can be adjusted in ultralcd_st7920_u8glib_rrd.h with PAGE_HEIGHT
|
||||
// AVR version ignores these pin settings
|
||||
// HAL version uses these pin settings
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_ST7920_128X64_4X // 2 stripes, SW SPI (Original u8glib device)
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_ST7920_128X64_RRD // Adjust stripes with PAGE_HEIGHT in ultralcd_st7920_u8glib_rrd.h
|
||||
#endif
|
||||
#define U8G_PARAM LCD_PINS_D4, LCD_PINS_ENABLE, LCD_PINS_RS // AVR version ignores these pin settings
|
||||
// HAL version uses these pin settings
|
||||
#endif
|
||||
|
||||
#elif ENABLED(CARTESIO_UI)
|
||||
// The CartesioUI display
|
||||
//#define U8G_CLASS U8GLIB_DOGM128_2X
|
||||
//#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 4 stripes
|
||||
#define U8G_CLASS U8GLIB_DOGM128_2X
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 4 stripes
|
||||
|
||||
// CartesioUI LCD
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_DOGM128_2X // 4 stripes
|
||||
#define FORCE_SOFT_SPI // SW-SPI
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_DOGM128_2X // 4 stripes (HW-SPI)
|
||||
#endif
|
||||
|
||||
#elif ENABLED(U8GLIB_LM6059_AF)
|
||||
|
||||
// Based on the Adafruit ST7565 (http://www.adafruit.com/products/250)
|
||||
//#define U8G_CLASS U8GLIB_LM6059
|
||||
//#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 8 stripes
|
||||
#define U8G_CLASS U8GLIB_LM6059_2X
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 4 stripes
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_LM6059 // 8 stripes (HW-SPI)
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_LM6059_2X // 4 stripes (HW-SPI)
|
||||
#endif
|
||||
|
||||
#elif ENABLED(U8GLIB_ST7565_64128N)
|
||||
// The MaKrPanel, Mini Viki, Viki 2.0 & AZSMZ 12864 ST7565 controller
|
||||
|
||||
// MaKrPanel, Mini Viki, Viki 2.0, AZSMZ 12864 ST7565 controller
|
||||
|
||||
#define SMART_RAMPS (MB(RAMPS_SMART_EFB) || MB(RAMPS_SMART_EEB) || MB(RAMPS_SMART_EFF) || MB(RAMPS_SMART_EEF) || MB(RAMPS_SMART_SF))
|
||||
#if DOGLCD_SCK == SCK_PIN && DOGLCD_MOSI == MOSI_PIN && !SMART_RAMPS
|
||||
#define U8G_CLASS U8GLIB_64128N_2X_HAL
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // using HW-SPI
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_64128N_2X_HAL
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // using SW-SPI
|
||||
#define U8G_CLASS U8GLIB_64128N_2X_HAL // 4 stripes (HW-SPI)
|
||||
#if SMART_RAMPS || DOGLCD_SCK != SCK_PIN || DOGLCD_MOSI != MOSI_PIN
|
||||
#define FORCE_SOFT_SPI // SW-SPI
|
||||
#endif
|
||||
|
||||
#elif ENABLED(MKS_12864OLED_SSD1306)
|
||||
|
||||
// MKS 128x64 (SSD1306) OLED I2C LCD
|
||||
#define U8G_CLASS U8GLIB_SSD1306_128X64
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 8 stripes
|
||||
//#define U8G_CLASS U8GLIB_SSD1306_128X64_2X
|
||||
//#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 4 stripes
|
||||
|
||||
#define FORCE_SOFT_SPI // SW-SPI
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_SSD1306_128X64_2X // 4 stripes
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_SSD1306_128X64 // 8 stripes
|
||||
#endif
|
||||
|
||||
#elif ENABLED(U8GLIB_SSD1306)
|
||||
// Generic support for SSD1306 OLED I2C LCDs
|
||||
//#define U8G_CLASS U8GLIB_SSD1306_128X64_2X_I2C_2_WIRE
|
||||
//#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) // 4 stripes
|
||||
#define U8G_CLASS U8GLIB_SSD1306_128X64_2X
|
||||
#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) // 4 stripes
|
||||
|
||||
// Generic SSD1306 OLED I2C LCD
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_SSD1306_128X64_2X_I2C_2_WIRE // 4 stripes
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_SSD1306_128X64_2X // 4 stripes
|
||||
#endif
|
||||
#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST)
|
||||
|
||||
#elif ENABLED(MKS_12864OLED)
|
||||
|
||||
// MKS 128x64 (SH1106) OLED I2C LCD
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 8 stripes
|
||||
//#define U8G_CLASS U8GLIB_SH1106_128X64_2X
|
||||
//#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 4 stripes
|
||||
#elif ENABLED(U8GLIB_SH1106)
|
||||
// Generic support for SH1106 OLED I2C LCDs
|
||||
//#define U8G_CLASS U8GLIB_SH1106_128X64_2X_I2C_2_WIRE
|
||||
//#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) // 4 stripes
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64_2X
|
||||
#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) // 4 stripes
|
||||
#elif ENABLED(U8GLIB_SSD1309)
|
||||
// Generic support for SSD1309 OLED I2C LCDs
|
||||
#define U8G_CLASS U8GLIB_SSD1309_128X64
|
||||
#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST)
|
||||
#elif ENABLED(MINIPANEL)
|
||||
// MINIPanel display
|
||||
//#define U8G_CLASS U8GLIB_MINI12864
|
||||
//#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 8 stripes
|
||||
#define U8G_CLASS U8GLIB_MINI12864_2X
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 8 stripes
|
||||
#elif ENABLED(FYSETC_MINI_12864)
|
||||
// The FYSETC_MINI_12864 display
|
||||
#define U8G_CLASS U8GLIB_MINI12864_2X_HAL
|
||||
#if ENABLED(FORCE_SOFT_SPI)
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 4 stripes SW-SPI
|
||||
|
||||
#define FORCE_SOFT_SPI // SW-SPI
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64_2X // 4 stripes
|
||||
#else
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 4 stripes HW-SPI
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64 // 8 stripes
|
||||
#endif
|
||||
|
||||
#elif ENABLED(U8GLIB_SH1106)
|
||||
|
||||
// Generic SH1106 OLED I2C LCD
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64_2X_I2C_2_WIRE // 4 stripes
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64_2X // 4 stripes
|
||||
#endif
|
||||
#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) // I2C
|
||||
|
||||
#elif ENABLED(U8GLIB_SSD1309)
|
||||
|
||||
// Generic support for SSD1309 OLED I2C LCDs
|
||||
|
||||
#define U8G_CLASS U8GLIB_SSD1309_128X64
|
||||
#define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) // I2C
|
||||
|
||||
#elif ENABLED(FYSETC_MINI_12864)
|
||||
|
||||
// The FYSETC Mini 12864 display
|
||||
|
||||
#define U8G_CLASS U8GLIB_MINI12864_2X_HAL // 4 stripes
|
||||
|
||||
#elif ENABLED(MKS_MINI_12864)
|
||||
|
||||
// The MKS_MINI_12864 V1/V2 aren't exact copies of the MiniPanel.
|
||||
// Panel management is in u8g_dev_uc1701_mini12864_HAL.cpp with
|
||||
// extra delays added to remove glitches seen with fast MCUs.
|
||||
|
||||
#define U8G_CLASS U8GLIB_MINI12864_2X_HAL // 8 stripes (HW-SPI)
|
||||
|
||||
#elif ENABLED(MINIPANEL)
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_MINI12864
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_MINI12864_2X // 8 stripes (HW-SPI)
|
||||
#endif
|
||||
|
||||
#elif ENABLED(U8GLIB_SH1106_EINSTART)
|
||||
|
||||
// Connected via motherboard header
|
||||
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, LCD_PINS_DC, LCD_PINS_RS
|
||||
|
||||
#elif ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
|
||||
// Unspecified 320x240 TFT pre-initialized by built-in bootloader
|
||||
|
||||
#define U8G_CLASS U8GLIB_TFT_320X240_UPSCALE_FROM_128X64
|
||||
#define U8G_PARAM FSMC_CS_PIN, FSMC_RS_PIN
|
||||
|
||||
#else
|
||||
// for regular DOGM128 display with HW-SPI
|
||||
//#define U8G_CLASS U8GLIB_DOGM128
|
||||
//#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // HW-SPI Com: CS, A0 // 8 stripes
|
||||
#define U8G_CLASS U8GLIB_DOGM128_2X
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // HW-SPI Com: CS, A0 // 4 stripes
|
||||
|
||||
#if ENABLED(ALTERNATIVE_LCD)
|
||||
#define U8G_CLASS U8GLIB_DOGM128 // 8 stripes (HW-SPI)
|
||||
#else
|
||||
#define U8G_CLASS U8GLIB_DOGM128_2X // 4 stripes (HW-SPI)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
// Use HW-SPI if no other option is specified
|
||||
#ifndef U8G_PARAM
|
||||
#if ENABLED(FORCE_SOFT_SPI)
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // SW-SPI
|
||||
#else
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // HW-SPI
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef LCD_PIXEL_WIDTH
|
||||
|
|
|
@ -217,7 +217,6 @@
|
|||
#define DOGLCD_A0 P0_16
|
||||
#define DOGLCD_SCK P0_07
|
||||
#define DOGLCD_MOSI P1_20
|
||||
#define FORCE_SOFT_SPI
|
||||
|
||||
#define LCD_BACKLIGHT_PIN -1
|
||||
|
||||
|
|
Loading…
Reference in a new issue