diff --git a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp index ebf828790..4af1ddc7f 100644 --- a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp +++ b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp @@ -411,17 +411,17 @@ void ILI9341_2::setRotation(uint8_t m) { _height = iheight; break; case 1: - m = (MADCTL_MV | MADCTL_BGR); + m = (MADCTL_MY | MADCTL_MV | MADCTL_BGR); _width = iheight; _height = iwidth; break; case 2: - m = (MADCTL_MY | MADCTL_BGR); + m = (MADCTL_MY | MADCTL_MX | MADCTL_BGR); _width = iwidth; _height = iheight; break; case 3: - m = (MADCTL_MX | MADCTL_MY | MADCTL_MV | MADCTL_BGR); + m = (MADCTL_MX | MADCTL_MV | MADCTL_BGR); _width = iheight; _height = iwidth; break; @@ -561,9 +561,11 @@ void ILI9341_2::DisplayOnff(int8_t on) { } void ILI9341_2::invertDisplay(boolean i) { + SPI_BEGIN_TRANSACTION(); ILI9341_2_CS_LOW writecmd(i ? ILI9341_2_INVON : ILI9341_2_INVOFF); ILI9341_2_CS_HIGH + SPI_END_TRANSACTION(); } void ili9342_dimm(uint8_t dim); diff --git a/tasmota/xdsp_04_ili9341.ino b/tasmota/xdsp_04_ili9341.ino index 2b1a31a73..57c00c225 100644 --- a/tasmota/xdsp_04_ili9341.ino +++ b/tasmota/xdsp_04_ili9341.ino @@ -42,7 +42,7 @@ bool tft_init_done = false; void ILI9341_InitDriver() { -#ifdef USE_M5STACK_CORE2 +#if (defined(USE_M5STACK_CORE2) || defined(USE_M5STACK_CORE_BASIC)) if (TasmotaGlobal.spi_enabled) { #else // There are displays without CS @@ -72,9 +72,14 @@ void ILI9341_InitDriver() fg_color = ILI9341_WHITE; bg_color = ILI9341_BLACK; + AddLog(LOG_LEVEL_INFO, PSTR("DSP: ILI934x 0")); + #ifdef USE_M5STACK_CORE2 // fixed pins on m5stack core2 ili9341_2 = new ILI9341_2(5, -2, 15, -2); +#elif defined(USE_M5STACK_CORE_BASIC) + // int8_t cs, int8_t res, int8_t dc, int8_t bp) + ili9341_2 = new ILI9341_2(14, 33, 27, 32); #else // check for special case with 2 SPI busses (ESP32 bitcoin) if (TasmotaGlobal.soft_spi_enabled) { @@ -94,6 +99,8 @@ void ILI9341_InitDriver() return; } + AddLog(LOG_LEVEL_INFO, PSTR("DSP: ILI934x 1")); + ili9341_2->init(Settings.display_width, Settings.display_height); renderer = ili9341_2; renderer->DisplayInit(DISPLAY_INIT_MODE, Settings.display_size, Settings.display_rotate, Settings.display_font);