mirror of
https://github.com/m5stack/meshtastic-device-ui.git
synced 2026-05-20 11:51:03 -07:00
added LGFX definitions for Elecrow CrowPanel advance 7.0
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
#pragma once
|
||||
|
||||
#define LGFX_USE_V1
|
||||
#include <LovyanGFX.hpp>
|
||||
#include <lgfx/v1/platforms/esp32s3/Bus_RGB.hpp>
|
||||
#include <lgfx/v1/platforms/esp32s3/Panel_RGB.hpp>
|
||||
|
||||
class LGFX_ELECROW70 : public lgfx::LGFX_Device
|
||||
{
|
||||
lgfx::Bus_RGB _bus_instance;
|
||||
lgfx::Panel_RGB _panel_instance;
|
||||
lgfx::Light_PWM _light_instance;
|
||||
lgfx::Touch_GT911 _touch_instance;
|
||||
|
||||
public:
|
||||
const uint16_t screenWidth = 800;
|
||||
const uint16_t screenHeight = 480;
|
||||
|
||||
bool hasButton(void) { return true; }
|
||||
|
||||
LGFX_ELECROW70(void)
|
||||
{
|
||||
{
|
||||
auto cfg = _panel_instance.config();
|
||||
|
||||
cfg.memory_width = screenWidth;
|
||||
cfg.memory_height = screenHeight;
|
||||
cfg.panel_width = screenWidth;
|
||||
cfg.panel_height = screenHeight;
|
||||
cfg.offset_x = 0;
|
||||
cfg.offset_y = 0;
|
||||
cfg.offset_rotation = 0;
|
||||
_panel_instance.config(cfg);
|
||||
}
|
||||
|
||||
{
|
||||
auto cfg = _panel_instance.config_detail();
|
||||
cfg.use_psram = 1;
|
||||
_panel_instance.config_detail(cfg);
|
||||
}
|
||||
|
||||
{
|
||||
auto cfg = _bus_instance.config();
|
||||
cfg.panel = &_panel_instance;
|
||||
cfg.pin_d0 = GPIO_NUM_21; // B0
|
||||
cfg.pin_d1 = GPIO_NUM_47; // B1
|
||||
cfg.pin_d2 = GPIO_NUM_48; // B2
|
||||
cfg.pin_d3 = GPIO_NUM_45; // B3
|
||||
cfg.pin_d4 = GPIO_NUM_38; // B4
|
||||
cfg.pin_d5 = GPIO_NUM_9; // G0
|
||||
cfg.pin_d6 = GPIO_NUM_10; // G1
|
||||
cfg.pin_d7 = GPIO_NUM_11; // G2
|
||||
cfg.pin_d8 = GPIO_NUM_12; // G3
|
||||
cfg.pin_d9 = GPIO_NUM_13; // G4
|
||||
cfg.pin_d10 = GPIO_NUM_14; // G5
|
||||
cfg.pin_d11 = GPIO_NUM_7; // R0
|
||||
cfg.pin_d12 = GPIO_NUM_17; // R1
|
||||
cfg.pin_d13 = GPIO_NUM_18; // R2
|
||||
cfg.pin_d14 = GPIO_NUM_3; // R3
|
||||
cfg.pin_d15 = GPIO_NUM_46; // R4
|
||||
|
||||
cfg.pin_henable = GPIO_NUM_42;
|
||||
cfg.pin_vsync = GPIO_NUM_41;
|
||||
cfg.pin_hsync = GPIO_NUM_40;
|
||||
cfg.pin_pclk = GPIO_NUM_39;
|
||||
cfg.freq_write = 21000000;
|
||||
|
||||
cfg.hsync_polarity = 0;
|
||||
cfg.hsync_front_porch = 8;
|
||||
cfg.hsync_pulse_width = 4;
|
||||
cfg.hsync_back_porch = 8;
|
||||
|
||||
cfg.vsync_polarity = 0;
|
||||
cfg.vsync_front_porch = 8;
|
||||
cfg.vsync_pulse_width = 4;
|
||||
cfg.vsync_back_porch = 8;
|
||||
|
||||
cfg.pclk_idle_high = 1;
|
||||
// cfg.pclk_active_neg = 0;
|
||||
// cfg.pclk_idle_high = 0;
|
||||
|
||||
_bus_instance.config(cfg);
|
||||
}
|
||||
_panel_instance.setBus(&_bus_instance);
|
||||
|
||||
{
|
||||
auto cfg = _light_instance.config();
|
||||
cfg.pin_bl = GPIO_NUM_2;
|
||||
// cfg.freq = 100;
|
||||
_light_instance.config(cfg);
|
||||
}
|
||||
_panel_instance.light(&_light_instance);
|
||||
|
||||
{
|
||||
auto cfg = _touch_instance.config();
|
||||
cfg.x_min = 0;
|
||||
cfg.x_max = 800;
|
||||
cfg.y_min = 0;
|
||||
cfg.y_max = 480;
|
||||
cfg.pin_int = -1;
|
||||
cfg.pin_rst = -1;
|
||||
cfg.bus_shared = false;
|
||||
cfg.offset_rotation = 0;
|
||||
|
||||
cfg.i2c_port = 0;
|
||||
cfg.i2c_addr = 0x5D;
|
||||
cfg.pin_sda = GPIO_NUM_15;
|
||||
cfg.pin_scl = GPIO_NUM_16;
|
||||
cfg.freq = 400000;
|
||||
_touch_instance.config(cfg);
|
||||
_panel_instance.setTouch(&_touch_instance);
|
||||
}
|
||||
|
||||
setPanel(&_panel_instance);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user