Mercurial > code > home > repos > front-door-display
annotate esp/update_lcd_block.h @ 19:6960c172f1a9
update py, pnpm, etc
author | drewp@bigasterisk.com |
---|---|
date | Mon, 26 Aug 2024 16:17:21 -0700 |
parents | 47795c3121f1 |
children |
rev | line source |
---|---|
7
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
1 #include <string> |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
2 |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
3 #include "esphome.h" |
8
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
4 // some from esphome; other code from |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
5 // https://github.com/lvgl/lvgl_esp32_drivers/blob/master/lvgl_tft/ili9481.c |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
6 // #include "esphome/components/ili9xxx/ili9xxx_display.h" |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
7 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
8 static const char *const TAG = "ili9481direct"; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
9 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
10 namespace esphome { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
11 namespace ili9xxx { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
12 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
13 /* MIPI DCS Type1 */ |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
14 #define ILI9481_CMD_NOP 0x00 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
15 #define ILI9481_CMD_SOFTWARE_RESET 0x01 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
16 #define ILI9481_CMD_READ_DISP_POWER_MODE 0x0A |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
17 #define ILI9481_CMD_READ_DISP_MADCTRL 0x0B // bits 7:3 only |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
18 #define ILI9481_CMD_READ_DISP_PIXEL_FORMAT 0x0C |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
19 #define ILI9481_CMD_READ_DISP_IMAGE_MODE 0x0D |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
20 #define ILI9481_CMD_READ_DISP_SIGNAL_MODE 0x0E |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
21 #define ILI9481_CMD_READ_DISP_SELF_DIAGNOSTIC 0x0F // bits 7:6 only |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
22 #define ILI9481_CMD_ENTER_SLEEP_MODE 0x10 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
23 #define ILI9481_CMD_SLEEP_OUT 0x11 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
24 #define ILI9481_CMD_PARTIAL_MODE_ON 0x12 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
25 #define ILI9481_CMD_NORMAL_DISP_MODE_ON 0x13 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
26 #define ILI9481_CMD_DISP_INVERSION_OFF 0x20 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
27 #define ILI9481_CMD_DISP_INVERSION_ON 0x21 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
28 #define ILI9481_CMD_DISPLAY_OFF 0x28 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
29 #define ILI9481_CMD_DISPLAY_ON 0x29 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
30 #define ILI9481_CMD_COLUMN_ADDRESS_SET 0x2A |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
31 #define ILI9481_CMD_PAGE_ADDRESS_SET 0x2B |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
32 #define ILI9481_CMD_MEMORY_WRITE 0x2C |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
33 #define ILI9481_CMD_MEMORY_READ 0x2E |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
34 #define ILI9481_CMD_PARTIAL_AREA 0x30 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
35 #define ILI9481_CMD_VERT_SCROLL_DEFINITION 0x33 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
36 #define ILI9481_CMD_TEARING_EFFECT_LINE_OFF 0x34 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
37 #define ILI9481_CMD_TEARING_EFFECT_LINE_ON 0x35 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
38 #define ILI9481_CMD_MEMORY_ACCESS_CONTROL 0x36 // bits 7:3,1:0 only |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
39 #define ILI9481_CMD_VERT_SCROLL_START_ADDRESS 0x37 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
40 #define ILI9481_CMD_IDLE_MODE_OFF 0x38 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
41 #define ILI9481_CMD_IDLE_MODE_ON 0x39 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
42 #define ILI9481_CMD_COLMOD_PIXEL_FORMAT_SET 0x3A |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
43 #define ILI9481_CMD_WRITE_MEMORY_CONTINUE 0x3C |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
44 #define ILI9481_CMD_READ_MEMORY_CONTINUE 0x3E |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
45 #define ILI9481_CMD_SET_TEAR_SCANLINE 0x44 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
46 #define ILI9481_CMD_GET_SCANLINE 0x45 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
47 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
48 #define ILI9481_DDB_START 0xA1 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
49 #define ILI9481_DDB_CONTINUE 0xA8 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
50 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
51 /* other */ |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
52 #define ILI9481_CMD_ACCESS_PROTECT 0xB0 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
53 #define ILI9481_CMD_LOW_POWER_CONTROL 0xB1 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
54 #define ILI9481_CMD_FRAME_MEMORY_ACCESS 0xB3 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
55 #define ILI9481_CMD_DISPLAY_MODE 0xB4 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
56 #define ILI9481_CMD_DEVICE_CODE 0xBF |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
57 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
58 #define ILI9481_CMD_PANEL_DRIVE 0xC0 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
59 #define ILI9481_CMD_DISP_TIMING_NORMAL 0xC1 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
60 #define ILI9481_CMD_DISP_TIMING_PARTIAL 0xC2 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
61 #define ILI9481_CMD_DISP_TIMING_IDLE 0xC3 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
62 #define ILI9481_CMD_FRAME_RATE 0xC5 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
63 #define ILI9481_CMD_INTERFACE_CONTROL 0xC6 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
64 #define ILI9481_CMD_GAMMA_SETTING 0xC8 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
65 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
66 #define ILI9481_CMD_POWER_SETTING 0xD0 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
67 #define ILI9481_CMD_VCOM_CONTROL 0xD1 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
68 #define ILI9481_CMD_POWER_CONTROL_NORMAL 0xD2 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
69 #define ILI9481_CMD_POWER_CONTROL_IDEL 0xD3 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
70 #define ILI9481_CMD_POWER_CONTROL_PARTIAL 0xD4 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
71 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
72 #define ILI9481_CMD_NVMEM_WRITE 0xE0 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
73 #define ILI9481_CMD_NVMEM_PROTECTION_KEY 0xE1 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
74 #define ILI9481_CMD_NVMEM_STATUS_READ 0xE2 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
75 #define ILI9481_CMD_NVMEM_PROTECTION 0xE3 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
76 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
77 typedef struct { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
78 uint8_t cmd; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
79 uint8_t data[16]; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
80 uint8_t databytes; // No of data in data; bit 7 = delay after set; 0xFF = end |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
81 // of cmds. |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
82 } lcd_init_cmd_t; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
83 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
84 lcd_init_cmd_t ili_init_cmds[] = { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
85 {ILI9481_CMD_SLEEP_OUT, {0x00}, 0x80}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
86 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
87 // {ILI9481_CMD_POWER_SETTING, {0x07, 0x42, 0x18}, 3}, // from lvgl code |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
88 {ILI9481_CMD_POWER_SETTING, {0x07, 0x41, 0x1D}, 3}, // from esphome code |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
89 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
90 // {ILI9481_CMD_VCOM_CONTROL, {0x00, 0x07, 0x10}, 3}, // from lvgl code |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
91 {ILI9481_CMD_VCOM_CONTROL, {0x00, 0x1c, 0x1f}, 3}, // from esphome code |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
92 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
93 // {ILI9481_CMD_POWER_CONTROL_NORMAL, {0x01, 0x02}, 2}, // from lvgl code |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
94 {ILI9481_CMD_POWER_CONTROL_NORMAL, {0x01, 0x11}, 2}, // from esphome code |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
95 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
96 {ILI9481_CMD_PANEL_DRIVE, {0x10, 0x3B, 0x00, 0x02, 0x11}, 5}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
97 {ILI9481_CMD_FRAME_RATE, {0x03}, 1}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
98 {ILI9481_CMD_FRAME_MEMORY_ACCESS, {0x0, 0x0, 0x0, 0x0}, 4}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
99 //{ILI9481_CMD_DISP_TIMING_NORMAL, {0x10, 0x10, 0x22}, 3}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
100 {ILI9481_CMD_GAMMA_SETTING, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
101 {0x00, 0x32, 0x36, 0x45, 0x06, 0x16, 0x37, 0x75, 0x77, 0x54, 0x0C, 0x00}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
102 12}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
103 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
104 #define ILI9481_ADDR_PAGE_ADDR_ORDER_B_TO_T 0x80 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
105 #define ILI9481_ADDR_COL_ADDR_ORDER_R_TO_L 0x40 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
106 #define ILI9481_ADDR_PAGE_COLUMN_ORDER_REVERSE 0x20 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
107 #define ILI9481_ADDR_LCD_REFRESH_BOT_TO_TOP 0x10 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
108 #define ILI9481_ADDR_BGR_ORDER 0x08 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
109 #define ILI9481_ADDR_HFLIP 0x02 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
110 #define ILI9481_ADDR_VFLIP 0x01 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
111 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
112 {ILI9481_CMD_MEMORY_ACCESS_CONTROL, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
113 {ILI9481_ADDR_BGR_ORDER | |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
114 ILI9481_ADDR_HFLIP | |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
115 0}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
116 1}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
117 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
118 {ILI9481_CMD_COLMOD_PIXEL_FORMAT_SET, {0x66}, 1}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
119 // {ILI9481_CMD_COLMOD_PIXEL_FORMAT_SET, {0x55}, 1}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
120 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
121 {ILI9481_CMD_DISP_INVERSION_ON, {}, 0x80}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
122 {ILI9481_CMD_NORMAL_DISP_MODE_ON, {}, 0x80}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
123 {ILI9481_CMD_DISPLAY_ON, {}, 0x80}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
124 {0, {0}, 0xff}, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
125 }; |
7
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
126 |
8
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
127 class ILI9481Direct |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
128 : public Component, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
129 public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
130 spi::CLOCK_PHASE_LEADING, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
131 // spi::DATA_RATE_40MHZ |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
132 spi::DATA_RATE_10MHZ> { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
133 public: |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
134 ILI9481Direct(esphome::spi::SPIComponent *spi) { spi_ = spi; } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
135 esphome::spi::SPIComponent *spi_; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
136 int width_ = 320; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
137 int height_ = 480; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
138 esp32::ESP32InternalGPIOPin *reset_pin_; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
139 esp32::ESP32InternalGPIOPin *dc_pin_; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
140 esp32::ESP32InternalGPIOPin *cs_pin_; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
141 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
142 void setup() override { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
143 this->setup_pins_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
144 this->init_lcd_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
145 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
146 void loop() override {} |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
147 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
148 void setup_pins_() { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
149 dc_pin_ = new esp32::ESP32InternalGPIOPin(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
150 dc_pin_->set_pin(::GPIO_NUM_22); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
151 dc_pin_->set_inverted(false); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
152 dc_pin_->set_drive_strength(::GPIO_DRIVE_CAP_2); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
153 dc_pin_->set_flags(gpio::Flags::FLAG_OUTPUT); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
154 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
155 dc_pin_->setup(); // OUTPUT |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
156 dc_pin_->digital_write(false); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
157 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
158 reset_pin_ = new esp32::ESP32InternalGPIOPin(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
159 reset_pin_->set_pin(::GPIO_NUM_25); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
160 reset_pin_->set_inverted(false); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
161 reset_pin_->set_drive_strength(::GPIO_DRIVE_CAP_2); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
162 reset_pin_->set_flags(gpio::Flags::FLAG_OUTPUT); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
163 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
164 reset_pin_->setup(); // OUTPUT |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
165 reset_pin_->digital_write(true); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
166 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
167 cs_pin_ = new esp32::ESP32InternalGPIOPin(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
168 cs_pin_->set_pin(::GPIO_NUM_27); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
169 cs_pin_->set_inverted(false); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
170 cs_pin_->set_drive_strength(::GPIO_DRIVE_CAP_2); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
171 cs_pin_->set_flags(gpio::Flags::FLAG_OUTPUT); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
172 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
173 set_cs_pin(cs_pin_); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
174 set_spi_parent(spi_); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
175 spi_setup(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
176 reset_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
177 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
178 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
179 void init_lcd_() { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
180 command(ILI9481_CMD_SOFTWARE_RESET); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
181 delay(150); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
182 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
183 uint16_t cmd = 0; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
184 while (ili_init_cmds[cmd].databytes != 0xff) { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
185 command(ili_init_cmds[cmd].cmd); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
186 { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
187 start_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
188 write_array(ili_init_cmds[cmd].data, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
189 ili_init_cmds[cmd].databytes & 0x1F); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
190 end_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
191 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
192 if (ili_init_cmds[cmd].databytes & 0x80) { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
193 delay(150); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
194 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
195 cmd++; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
196 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
197 ESP_LOGI(TAG, "done init cmds"); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
198 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
199 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
200 void blit(uint16_t xp, uint16_t yp, uint16_t w, uint16_t h, |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
201 const unsigned char *&buf) { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
202 set_addr_window_(xp, yp, xp + w - 1, yp + h - 1); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
203 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
204 this->command(ILI9481_CMD_MEMORY_WRITE); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
205 { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
206 this->start_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
207 this->write_array(buf, static_cast<size_t>(h * w * 3)); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
208 this->end_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
209 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
210 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
211 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
212 void set_addr_window_(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
213 command(ILI9481_CMD_COLUMN_ADDRESS_SET); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
214 { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
215 start_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
216 write_byte(x1 >> 8); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
217 write_byte(x1 & 0xFF); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
218 write_byte(x2 >> 8); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
219 write_byte(x2 & 0xFF); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
220 end_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
221 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
222 command(ILI9481_CMD_PAGE_ADDRESS_SET); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
223 { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
224 start_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
225 write_byte(y1 >> 8); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
226 write_byte(y1 & 0xFF); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
227 write_byte(y2 >> 8); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
228 write_byte(y2 & 0xFF); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
229 end_data_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
230 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
231 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
232 void command(uint8_t value) { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
233 this->start_command_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
234 this->write_byte(value); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
235 this->end_command_(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
236 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
237 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
238 void start_command_() { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
239 this->dc_pin_->digital_write(false); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
240 this->enable(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
241 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
242 void end_command_() { this->disable(); } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
243 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
244 void start_data_() { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
245 this->dc_pin_->digital_write(true); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
246 this->enable(); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
247 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
248 void end_data_() { this->disable(); } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
249 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
250 void reset_() { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
251 if (this->reset_pin_ != nullptr) { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
252 this->reset_pin_->digital_write(false); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
253 delay(20); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
254 this->reset_pin_->digital_write(true); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
255 delay(20); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
256 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
257 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
258 }; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
259 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
260 void update_lcd_block(ILI9481Direct *lcd, std::string &x) { |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
261 #if 0 |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
262 std::string localPayload = x; |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
263 const unsigned char *buf = reinterpret_cast<const unsigned char*>(localPayload.data()); |
7
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
264 #else |
8
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
265 const unsigned char *buf = reinterpret_cast<const unsigned char *>(x.data()); |
7
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
266 #endif |
8
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
267 |
7
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
268 uint16_t seq, xp, yp, w, h; |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
269 #define readu16() \ |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
270 (static_cast<const uint16_t>(*(buf++)) | \ |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
271 (static_cast<const uint16_t>(*(buf++)) << 8)) |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
272 seq = readu16(); |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
273 xp = readu16(); |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
274 yp = readu16(); |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
275 w = readu16(); |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
276 h = readu16(); |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
277 char seqDia[] = " "; |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
278 seqDia[seq % 10] = '%'; |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
279 ESP_LOGD("dbg", |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
280 "seq=%hu%s xp=%hu, yp=%hu, w=%hu, h=%hu, full payload=%d bytes", seq, |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
281 seqDia, xp, yp, w, h, x.size()); |
b46679798c51
mv esp code to this repo. still trying to get correct refreshes
drewp@bigasterisk.com
parents:
diff
changeset
|
282 |
8
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
283 lcd->blit(xp, yp, w, h, buf); |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
284 } |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
285 } // namespace ili9xxx |
47795c3121f1
bufferless updates! mqtt message is sent over SPI and everything works
drewp@bigasterisk.com
parents:
7
diff
changeset
|
286 } // namespace esphome |