MCPcopy Create free account
hub / github.com/TactilityProject/Tactility / createPanel

Method createPanel

Drivers/ST7789-i8080/Source/St7789i8080Display.cpp:124–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

122}
123
124bool St7789i8080Display::createPanel() {
125 LOGGER.info("Configuring panel");
126
127 // Create ST7789 panel
128 esp_lcd_panel_dev_config_t panel_config = {
129 .reset_gpio_num = configuration.resetPin,
130 .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB,
131 .data_endian = LCD_RGB_DATA_ENDIAN_LITTLE,
132 .bits_per_pixel = 16,
133 .flags = {
134 .reset_active_high = false
135 },
136 .vendor_config = nullptr
137 };
138
139 esp_err_t ret = esp_lcd_new_panel_st7789(ioHandle, &panel_config, &panelHandle);
140 if (ret != ESP_OK) {
141 LOGGER.error("Failed to create ST7789 panel: {}", esp_err_to_name(ret));
142 return false;
143 }
144
145 // Reset panel
146 ret = esp_lcd_panel_reset(panelHandle);
147 if (ret != ESP_OK) {
148 LOGGER.error("Failed to reset panel: {}", esp_err_to_name(ret));
149 return false;
150 }
151
152 // Initialize panel
153 ret = esp_lcd_panel_init(panelHandle);
154 if (ret != ESP_OK) {
155 LOGGER.error("Failed to init panel: {}", esp_err_to_name(ret));
156 return false;
157 }
158
159 // Set gap
160 ret = esp_lcd_panel_set_gap(panelHandle, configuration.gapX, configuration.gapY);
161 if (ret != ESP_OK) {
162 LOGGER.error("Failed to set panel gap: {}", esp_err_to_name(ret));
163 return false;
164 }
165
166 // Set inversion
167 ret = esp_lcd_panel_invert_color(panelHandle, configuration.invertColor);
168 if (ret != ESP_OK) {
169 LOGGER.error("Failed to set panel inversion: {}", esp_err_to_name(ret));
170 return false;
171 }
172
173 // Set mirror
174 ret = esp_lcd_panel_mirror(panelHandle, configuration.mirrorX, configuration.mirrorY);
175 if (ret != ESP_OK) {
176 LOGGER.error("Failed to set panel mirror: {}", esp_err_to_name(ret));
177 return false;
178 }
179
180 // Turn on display
181 ret = esp_lcd_panel_disp_on_off(panelHandle, true);

Callers

nothing calls this directly

Calls 2

infoMethod · 0.80
errorMethod · 0.80

Tested by

no test coverage detected