mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	[ili9xxx] Fix init for GC9A01A (#6913)
This commit is contained in:
		| @@ -34,8 +34,8 @@ void ILI9XXXDisplay::setup() { | ||||
|   ESP_LOGD(TAG, "Setting up ILI9xxx"); | ||||
|  | ||||
|   this->setup_pins_(); | ||||
|   this->init_lcd_(this->init_sequence_); | ||||
|   this->init_lcd_(this->extra_init_sequence_.data()); | ||||
|   this->init_lcd(this->init_sequence_); | ||||
|   this->init_lcd(this->extra_init_sequence_.data()); | ||||
|   switch (this->pixel_mode_) { | ||||
|     case PIXEL_MODE_16: | ||||
|       if (this->is_18bitdisplay_) { | ||||
| @@ -405,7 +405,7 @@ void ILI9XXXDisplay::reset_() { | ||||
|   } | ||||
| } | ||||
|  | ||||
| void ILI9XXXDisplay::init_lcd_(const uint8_t *addr) { | ||||
| void ILI9XXXDisplay::init_lcd(const uint8_t *addr) { | ||||
|   if (addr == nullptr) | ||||
|     return; | ||||
|   uint8_t cmd, x, num_args; | ||||
| @@ -427,6 +427,20 @@ void ILI9XXXDisplay::init_lcd_(const uint8_t *addr) { | ||||
|   } | ||||
| } | ||||
|  | ||||
| void ILI9XXXGC9A01A::init_lcd(const uint8_t *addr) { | ||||
|   if (addr == nullptr) | ||||
|     return; | ||||
|   uint8_t cmd, x, num_args; | ||||
|   while ((cmd = *addr++) != 0) { | ||||
|     x = *addr++; | ||||
|     num_args = x & 0x7F; | ||||
|     this->send_command(cmd, addr, num_args); | ||||
|     addr += num_args; | ||||
|     if (x & 0x80) | ||||
|       delay(150);  // NOLINT | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Tell the display controller where we want to draw pixels. | ||||
| void ILI9XXXDisplay::set_addr_window_(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) { | ||||
|   x1 += this->offset_x_; | ||||
|   | ||||
| @@ -109,7 +109,7 @@ class ILI9XXXDisplay : public display::DisplayBuffer, | ||||
|  | ||||
|   virtual void set_madctl(); | ||||
|   void display_(); | ||||
|   void init_lcd_(const uint8_t *addr); | ||||
|   virtual void init_lcd(const uint8_t *addr); | ||||
|   void set_addr_window_(uint16_t x, uint16_t y, uint16_t x2, uint16_t y2); | ||||
|   void reset_(); | ||||
|  | ||||
| @@ -269,6 +269,7 @@ class ILI9XXXS3BoxLite : public ILI9XXXDisplay { | ||||
| class ILI9XXXGC9A01A : public ILI9XXXDisplay { | ||||
|  public: | ||||
|   ILI9XXXGC9A01A() : ILI9XXXDisplay(INITCMD_GC9A01A, 240, 240, true) {} | ||||
|   void init_lcd(const uint8_t *addr) override; | ||||
| }; | ||||
|  | ||||
| //-----------   ILI9XXX_24_TFT display -------------- | ||||
|   | ||||
		Reference in New Issue
	
	Block a user