diff --git a/src/lgfx/v1/panel/Panel_ILI9341.hpp b/src/lgfx/v1/panel/Panel_ILI9341.hpp index 2270f014..650ba2b7 100644 --- a/src/lgfx/v1/panel/Panel_ILI9341.hpp +++ b/src/lgfx/v1/panel/Panel_ILI9341.hpp @@ -25,14 +25,19 @@ namespace lgfx { //---------------------------------------------------------------------------- - struct Panel_ILI9341 : public Panel_LCD + struct Panel_ILI9341_Base : public Panel_LCD { - Panel_ILI9341(void) + Panel_ILI9341_Base(void) { _cfg.memory_width = _cfg.panel_width = 240; _cfg.memory_height = _cfg.panel_height = 320; } + }; + +//---------------------------------------------------------------------------- + struct Panel_ILI9341 : public Panel_ILI9341_Base + { protected: static constexpr uint8_t CMD_FRMCTR1 = 0xB1; @@ -88,5 +93,69 @@ namespace lgfx }; //---------------------------------------------------------------------------- + + + struct Panel_ILI9341_2 : public Panel_ILI9341_Base + { + protected: + + static constexpr uint8_t CMD_FRMCTR1 = 0xB1; + static constexpr uint8_t CMD_FRMCTR2 = 0xB2; + static constexpr uint8_t CMD_FRMCTR3 = 0xB3; + static constexpr uint8_t CMD_INVCTR = 0xB4; + static constexpr uint8_t CMD_DFUNCTR = 0xB6; + static constexpr uint8_t CMD_PWCTR1 = 0xC0; + static constexpr uint8_t CMD_PWCTR2 = 0xC1; + static constexpr uint8_t CMD_PWCTR3 = 0xC2; + static constexpr uint8_t CMD_PWCTR4 = 0xC3; + static constexpr uint8_t CMD_PWCTR5 = 0xC4; + static constexpr uint8_t CMD_VMCTR1 = 0xC5; + static constexpr uint8_t CMD_VMCTR2 = 0xC7; + static constexpr uint8_t CMD_GMCTRP1 = 0x0; // Positive Gamma Correction (E0h) + static constexpr uint8_t CMD_GMCTRN1 = 0x0; // Negative Gamma Correction (E1h) + static constexpr uint8_t CMD_RDINDEX = 0xD9; // ili9341 + static constexpr uint8_t CMD_IDXRD = 0xDD; // ILI9341 only, indexed control register read + + const uint8_t* getInitCommands(uint8_t listno) const override + { + static constexpr uint8_t list0[] = + { + 0xEF , 3, 0x03,0x80,0x02, + 0xCF , 3, 0x00,0xC1,0x30, + 0xED , 4, 0x64,0x03,0x12,0x81, + 0xE8 , 3, 0x85,0x00,0x78, + 0xCB , 5, 0x39,0x2C,0x00,0x34,0x02, + 0xF7 , 1, 0x20, + 0xEA , 2, 0x00,0x00, + CMD_PWCTR1, 1, 0x10, + CMD_PWCTR2, 1, 0x00, + CMD_VMCTR1, 2, 0x30,0x30, + CMD_VMCTR2, 1, 0xB7, + 0x3A , 1, 0x55, + 0x36 , 1, 0x08, + CMD_FRMCTR1, 2, 0x00,0x1A, + 0xF2 , 1, 0x00, + + CMD_GAMMASET,1, 0x01, // Gamma set, curve 1 + CMD_GMCTRP1,15, 0x0F,0x2A,0x28,0x08,0x0E,0x08,0x54,0xA9,0x43,0x0A,0x0F,0x00,0x00,0x00,0x00, + CMD_GMCTRN1,15, 0x00,0x15,0x17,0x07,0x11,0x06,0x2B,0x56,0x3C,0x05,0x10,0x0F,0x3F,0x3F,0x0F, + CMD_DFUNCTR, 3, 0x08,0x82,0x27, + 0x2B , 4, 0x00,0x00,0x01,0x3F, + 0x2A , 4, 0x00,0x00,0x00,0x3F, + CMD_SLPOUT , 0+CMD_INIT_DELAY, 120, // Exit sleep mode + CMD_IDMOFF , 0, + CMD_DISPON , 0+CMD_INIT_DELAY, 100, + 0xFF,0xFF, // end + }; + switch (listno) + { + case 0: return list0; + default: return nullptr; + } + } + }; + +//---------------------------------------------------------------------------- + } }