9static const uint8_t ST_CMD_DELAY = 0x80;  
 
   11static const uint8_t ST77XX_NOP = 0x00;
 
   12static const uint8_t ST77XX_SWRESET = 0x01;
 
   13static const uint8_t ST77XX_RDDID = 0x04;
 
   14static const uint8_t ST77XX_RDDST = 0x09;
 
   16static const uint8_t ST77XX_SLPIN = 0x10;
 
   17static const uint8_t ST77XX_SLPOUT = 0x11;
 
   18static const uint8_t ST77XX_PTLON = 0x12;
 
   19static const uint8_t ST77XX_NORON = 0x13;
 
   21static const uint8_t ST77XX_INVOFF = 0x20;
 
   22static const uint8_t ST77XX_INVON = 0x21;
 
   23static const uint8_t ST77XX_DISPOFF = 0x28;
 
   24static const uint8_t ST77XX_DISPON = 0x29;
 
   25static const uint8_t ST77XX_CASET = 0x2A;
 
   26static const uint8_t ST77XX_RASET = 0x2B;
 
   27static const uint8_t ST77XX_RAMWR = 0x2C;
 
   28static const uint8_t ST77XX_RAMRD = 0x2E;
 
   30static const uint8_t ST77XX_PTLAR = 0x30;
 
   31static const uint8_t ST77XX_TEOFF = 0x34;
 
   32static const uint8_t ST77XX_TEON = 0x35;
 
   33static const uint8_t ST77XX_MADCTL = 0x36;
 
   34static const uint8_t ST77XX_COLMOD = 0x3A;
 
   36static const uint8_t ST77XX_MADCTL_MY = 0x80;
 
   37static const uint8_t ST77XX_MADCTL_MX = 0x40;
 
   38static const uint8_t ST77XX_MADCTL_MV = 0x20;
 
   39static const uint8_t ST77XX_MADCTL_ML = 0x10;
 
   40static const uint8_t ST77XX_MADCTL_RGB = 0x00;
 
   42static const uint8_t ST77XX_RDID1 = 0xDA;
 
   43static const uint8_t ST77XX_RDID2 = 0xDB;
 
   44static const uint8_t ST77XX_RDID3 = 0xDC;
 
   45static const uint8_t ST77XX_RDID4 = 0xDD;
 
   48static const uint8_t ST7735_MADCTL_BGR = 0x08;
 
   50static const uint8_t ST7735_MADCTL_MH = 0x04;
 
   52static const uint8_t ST7735_FRMCTR1 = 0xB1;
 
   53static const uint8_t ST7735_FRMCTR2 = 0xB2;
 
   54static const uint8_t ST7735_FRMCTR3 = 0xB3;
 
   55static const uint8_t ST7735_INVCTR = 0xB4;
 
   56static const uint8_t ST7735_DISSET5 = 0xB6;
 
   58static const uint8_t ST7735_PWCTR1 = 0xC0;
 
   59static const uint8_t ST7735_PWCTR2 = 0xC1;
 
   60static const uint8_t ST7735_PWCTR3 = 0xC2;
 
   61static const uint8_t ST7735_PWCTR4 = 0xC3;
 
   62static const uint8_t ST7735_PWCTR5 = 0xC4;
 
   63static const uint8_t ST7735_VMCTR1 = 0xC5;
 
   65static const uint8_t ST7735_PWCTR6 = 0xFC;
 
   67static const uint8_t ST7735_GMCTRP1 = 0xE0;
 
   68static const uint8_t ST7735_GMCTRN1 = 0xE1;
 
   74    ST77XX_SWRESET,   ST_CMD_DELAY, 
 
   76    ST77XX_SLPOUT,    ST_CMD_DELAY, 
 
   78    ST77XX_COLMOD,  1+ST_CMD_DELAY, 
 
   81    ST7735_FRMCTR1, 3+ST_CMD_DELAY, 
 
   94    ST7735_PWCTR1,  2+ST_CMD_DELAY, 
 
  103    ST7735_VMCTR1,  2+ST_CMD_DELAY, 
 
  110      0x09, 0x16, 0x09, 0x20,       
 
  111      0x21, 0x1B, 0x13, 0x19,       
 
  112      0x17, 0x15, 0x1E, 0x2B,
 
  113      0x04, 0x05, 0x02, 0x0E,
 
  114    ST7735_GMCTRN1,16+ST_CMD_DELAY, 
 
  115      0x0B, 0x14, 0x08, 0x1E,       
 
  116      0x22, 0x1D, 0x18, 0x1E,       
 
  117      0x1B, 0x1A, 0x24, 0x2B,
 
  118      0x06, 0x06, 0x02, 0x0F,
 
  126    ST77XX_NORON,     ST_CMD_DELAY, 
 
  128    ST77XX_DISPON,    ST_CMD_DELAY, 
 
  133    ST77XX_SWRESET,   ST_CMD_DELAY, 
 
  135    ST77XX_SLPOUT,    ST_CMD_DELAY, 
 
  195  RCMD2GREEN160X80[] = {            
 
  207      0x02, 0x1c, 0x07, 0x12,       
 
  208      0x37, 0x32, 0x29, 0x2d,       
 
  209      0x29, 0x25, 0x2B, 0x39,
 
  210      0x00, 0x01, 0x03, 0x10,
 
  212      0x03, 0x1d, 0x07, 0x06,       
 
  213      0x2E, 0x2C, 0x29, 0x2D,       
 
  214      0x2E, 0x2E, 0x37, 0x3F,
 
  215      0x00, 0x00, 0x02, 0x10,
 
  216    ST77XX_NORON,     ST_CMD_DELAY, 
 
  218    ST77XX_DISPON,    ST_CMD_DELAY, 
 
  222static const char *
const TAG = 
"st7735";
 
  229      eightbitcolor_(eightbitcolor),
 
  231      invert_colors_(invert_colors),
 
 
  247  ESP_LOGD(TAG, 
"  START");
 
  249  ESP_LOGD(TAG, 
"  END");
 
  253  if (this->
model_ == INITR_GREENTAB) {
 
  257  } 
else if ((this->
model_ == INITR_144GREENTAB) || (this->
model_ == INITR_HALLOWING)) {
 
  263  } 
else if (this->
model_ == INITR_MINI_160X80) {
 
  276  if (this->
model_ != INITR_HALLOWING) {
 
  277    data = ST77XX_MADCTL_MX | ST77XX_MADCTL_MY;
 
  280    data = data | ST7735_MADCTL_BGR;
 
  282    data = data | ST77XX_MADCTL_RGB;
 
 
  320    this->
buffer_[pos++] = (color565 >> 8) & 0xff;
 
  321    this->
buffer_[pos] = color565 & 0xff;
 
 
  340      return "ST7735 GREENTAB";
 
  342      return "ST7735 REDTAB";
 
  344      return "ST7735 BLACKTAB";
 
  345    case INITR_MINI_160X80:
 
  346      return "ST7735 MINI160x80";
 
 
  353  uint8_t num_commands, cmd, num_args;
 
  357  while (num_commands--) {                   
 
  360    ms = num_args & ST_CMD_DELAY;            
 
  361    num_args &= ~ST_CMD_DELAY;               
 
 
  375  LOG_DISPLAY(
"", 
"ST7735", 
this);
 
  376  ESP_LOGCONFIG(TAG, 
"  Model: %s", this->
model_str_());
 
  377  LOG_PIN(
"  CS Pin: ", this->
cs_);
 
  378  LOG_PIN(
"  DC Pin: ", this->
dc_pin_);
 
  381  ESP_LOGD(TAG, 
"  Height: %d", this->
height_);
 
  382  ESP_LOGD(TAG, 
"  Width: %d", this->
width_);
 
  383  ESP_LOGD(TAG, 
"  ColStart: %d", this->
colstart_);
 
  384  ESP_LOGD(TAG, 
"  RowStart: %d", this->
rowstart_);
 
  385  LOG_UPDATE_INTERVAL(
this);
 
 
  405  this->
senddata_(data_bytes, num_data_bytes);
 
 
  412  for (uint8_t i = 0; i < num_data_bytes; i++) {
 
 
  423  uint16_t x1 = offsetx;
 
  425  uint16_t y1 = offsety;
 
 
  466  static uint8_t 
byte[4];
 
  467  byte[0] = (addr1 >> 8) & 0xFF;
 
  468  byte[1] = addr1 & 0xFF;
 
  469  byte[2] = (addr2 >> 8) & 0xFF;
 
  470  byte[3] = addr2 & 0xFF;
 
 
  477  static uint8_t 
byte[1024];
 
  479  for (
int i = 0; i < size; i++) {
 
  480    byte[index++] = (color >> 8) & 0xFF;
 
  481    byte[index++] = color & 0xFF;