From aac08875d52c13267eeb6ee6cb4f8fe352a6cf74 Mon Sep 17 00:00:00 2001 From: Marcel Licence Date: Sat, 19 Jun 2021 16:02:10 +0200 Subject: [PATCH] Added support for 0.96" 80x160 RGB IPS 65k color display --- Adafruit_ST7735.cpp | 21 +++++++++++++++++---- Adafruit_ST7735.h | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Adafruit_ST7735.cpp b/Adafruit_ST7735.cpp index bfab90a..d9875df 100644 --- a/Adafruit_ST7735.cpp +++ b/Adafruit_ST7735.cpp @@ -234,6 +234,15 @@ void Adafruit_ST7735::initR(uint8_t options) { displayInit(Rcmd2green160x80); _colstart = 24; _rowstart = 0; + } else if (options == INITR_096_160x80_IPS) { + _height = ST7735_TFTWIDTH_80; + _width = ST7735_TFTHEIGHT_160; + displayInit(Rcmd2green160x80); + _colstart = 26; + _rowstart = 1; + // hack: invert inversion + invertOnCommand = ST77XX_INVOFF; + invertOffCommand = ST77XX_INVON; } else { // colstart, rowstart left at default '0' values displayInit(Rcmd2red); @@ -246,6 +255,10 @@ void Adafruit_ST7735::initR(uint8_t options) { sendCommand(ST77XX_MADCTL, &data, 1); } + // hack: update inversion because its inverted + if (options == INITR_096_160x80_IPS) { + invertDisplay(false); + } if (options == INITR_HALLOWING) { // Hallowing is simply a 1.44" green tab upside-down: tabcolor = INITR_144GREENTAB; @@ -286,7 +299,7 @@ void Adafruit_ST7735::setRotation(uint8_t m) { if (tabcolor == INITR_144GREENTAB) { _height = ST7735_TFTHEIGHT_128; _width = ST7735_TFTWIDTH_128; - } else if (tabcolor == INITR_MINI160x80) { + } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_096_160x80_IPS)) { _height = ST7735_TFTHEIGHT_160; _width = ST7735_TFTWIDTH_80; } else { @@ -306,7 +319,7 @@ void Adafruit_ST7735::setRotation(uint8_t m) { if (tabcolor == INITR_144GREENTAB) { _width = ST7735_TFTHEIGHT_128; _height = ST7735_TFTWIDTH_128; - } else if (tabcolor == INITR_MINI160x80) { + } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_096_160x80_IPS)) { _width = ST7735_TFTHEIGHT_160; _height = ST7735_TFTWIDTH_80; } else { @@ -326,7 +339,7 @@ void Adafruit_ST7735::setRotation(uint8_t m) { if (tabcolor == INITR_144GREENTAB) { _height = ST7735_TFTHEIGHT_128; _width = ST7735_TFTWIDTH_128; - } else if (tabcolor == INITR_MINI160x80) { + } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_096_160x80_IPS)) { _height = ST7735_TFTHEIGHT_160; _width = ST7735_TFTWIDTH_80; } else { @@ -346,7 +359,7 @@ void Adafruit_ST7735::setRotation(uint8_t m) { if (tabcolor == INITR_144GREENTAB) { _width = ST7735_TFTHEIGHT_128; _height = ST7735_TFTWIDTH_128; - } else if (tabcolor == INITR_MINI160x80) { + } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_096_160x80_IPS)) { _width = ST7735_TFTHEIGHT_160; _height = ST7735_TFTWIDTH_80; } else { diff --git a/Adafruit_ST7735.h b/Adafruit_ST7735.h index da1320a..828cc53 100755 --- a/Adafruit_ST7735.h +++ b/Adafruit_ST7735.h @@ -13,6 +13,7 @@ #define INITR_144GREENTAB 0x01 #define INITR_MINI160x80 0x04 #define INITR_HALLOWING 0x05 +#define INITR_096_160x80_IPS 0x06 // Some register settings #define ST7735_MADCTL_BGR 0x08