Skip to content

Commit adfcaa5

Browse files
committed
prefect: Modify RGB Interface to DPI Interface
Signed-off-by: lbuque <1102390310@qq.com>
1 parent a099759 commit adfcaa5

File tree

6 files changed

+241
-204
lines changed

6 files changed

+241
-204
lines changed

lcd/bus/dpi/dpi_panel.c

Lines changed: 108 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "rgb_panel.h"
1+
#include "dpi_panel.h"
22

33
#if USE_ESP_LCD
44
#include "esp32.h"
@@ -12,18 +12,26 @@
1212

1313
#include <string.h>
1414

15-
STATIC void lcd_rgb_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind)
15+
STATIC void lcd_dpi_print(const mp_print_t *print,
16+
mp_obj_t self_in,
17+
mp_print_kind_t kind)
1618
{
1719
(void) kind;
18-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
19-
mp_printf(print, "<RGB pclk=%u, width=%u, height=%u>",
20-
self->pclk,
21-
self->width,
22-
self->height);
20+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
21+
mp_printf(
22+
print,
23+
"<DPI pclk=%u, width=%u, height=%u>",
24+
self->pclk,
25+
self->width,
26+
self->height
27+
);
2328
}
2429

2530

26-
mp_obj_t lcd_rgb_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t * all_args)
31+
mp_obj_t lcd_dpi_make_new(const mp_obj_type_t *type,
32+
size_t n_args,
33+
size_t n_kw,
34+
const mp_obj_t *all_args)
2735
{
2836
enum {
2937
ARG_data,
@@ -50,14 +58,14 @@ mp_obj_t lcd_rgb_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw,
5058
{ MP_QSTR_pclk, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 8000000 } },
5159
{ MP_QSTR_width, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 480 } },
5260
{ MP_QSTR_height, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 480 } },
53-
61+
5462
};
5563
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
5664
mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
5765

5866
// create new object
59-
lcd_rgb_obj_t *self = m_new_obj(lcd_rgb_obj_t);
60-
self->base.type = &lcd_rgb_type;
67+
lcd_dpi_obj_t *self = m_new_obj(lcd_dpi_obj_t);
68+
self->base.type = &lcd_dpi_type;
6169

6270
// data bus
6371
mp_obj_tuple_t *t = MP_OBJ_TO_PTR(args[ARG_data].u_obj);
@@ -99,121 +107,133 @@ mp_obj_t lcd_rgb_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw,
99107
self->width = args[ARG_width].u_int;
100108
self->height = args[ARG_height].u_int;
101109

102-
hal_lcd_rgb_construct(self);
110+
hal_lcd_dpi_construct(&self->base);
103111
return MP_OBJ_FROM_PTR(self);
104112
}
105113

106114

107-
STATIC mp_obj_t lcd_rgb_deinit(mp_obj_t self_in)
115+
STATIC mp_obj_t lcd_dpi_deinit(mp_obj_t self_in)
108116
{
109-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
110-
// m_del_obj(lcd_rgb_obj_t, self);
111-
hal_lcd_rgb_del(self);
117+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
118+
// m_del_obj(lcd_dpi_obj_t, self);
119+
hal_lcd_dpi_del(&self->base);
112120
return mp_const_none;
113121
}
114-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_rgb_deinit_obj, lcd_rgb_deinit);
122+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_dpi_deinit_obj, lcd_dpi_deinit);
115123

116124

117-
STATIC mp_obj_t lcd_rgb_reset(mp_obj_t self_in)
125+
STATIC mp_obj_t lcd_dpi_reset(mp_obj_t self_in)
118126
{
119-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
127+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
120128

121-
hal_lcd_rgb_reset(self);
129+
hal_lcd_dpi_reset(&self->base);
122130

123131
return mp_const_none;
124132
}
125-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_rgb_reset_obj, lcd_rgb_reset);
133+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_dpi_reset_obj, lcd_dpi_reset);
126134

127135

128-
STATIC mp_obj_t lcd_rgb_init(mp_obj_t self_in)
136+
STATIC mp_obj_t lcd_dpi_init(mp_obj_t self_in)
129137
{
130-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
138+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
131139

132-
hal_lcd_rgb_init(self);
140+
hal_lcd_dpi_init(&self->base);
133141

134142
return mp_const_none;
135143
}
136-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_rgb_init_obj, lcd_rgb_init);
144+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_dpi_init_obj, lcd_dpi_init);
137145

138146

139-
STATIC mp_obj_t lcd_rgb_bitmap(size_t n_args, const mp_obj_t *args_in)
147+
STATIC mp_obj_t lcd_dpi_bitmap(size_t n_args, const mp_obj_t *args_in)
140148
{
141-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(args_in[0]);
149+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(args_in[0]);
142150
mp_buffer_info_t bufinfo;
143151
mp_get_buffer_raise(args_in[5], &bufinfo, MP_BUFFER_READ);
144152

145-
hal_lcd_rgb_bitmap(self,
146-
mp_obj_get_int(args_in[1]),
147-
mp_obj_get_int(args_in[2]),
148-
mp_obj_get_int(args_in[3]),
149-
mp_obj_get_int(args_in[4]),
150-
bufinfo.buf);
153+
hal_lcd_dpi_bitmap(
154+
&self->base,
155+
mp_obj_get_int(args_in[1]),
156+
mp_obj_get_int(args_in[2]),
157+
mp_obj_get_int(args_in[3]),
158+
mp_obj_get_int(args_in[4]),
159+
bufinfo.buf
160+
);
151161

152162
return mp_const_none;
153163
}
154-
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(lcd_rgb_bitmap_obj, 6, 6, lcd_rgb_bitmap);
164+
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(lcd_dpi_bitmap_obj, 6, 6, lcd_dpi_bitmap);
155165

156166

157-
STATIC mp_obj_t lcd_rgb_mirror(mp_obj_t self_in,
158-
mp_obj_t mirror_x_in,
159-
mp_obj_t mirror_y_in)
167+
STATIC mp_obj_t lcd_dpi_mirror(mp_obj_t self_in,
168+
mp_obj_t mirror_x_in,
169+
mp_obj_t mirror_y_in)
160170
{
161-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
171+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
162172

163-
hal_lcd_rgb_mirror(self, mp_obj_is_true(mirror_x_in), mp_obj_is_true(mirror_y_in));
173+
hal_lcd_dpi_mirror(
174+
&self->base,
175+
mp_obj_is_true(mirror_x_in),
176+
mp_obj_is_true(mirror_y_in)
177+
);
164178

165179
return mp_const_none;
166180
}
167-
STATIC MP_DEFINE_CONST_FUN_OBJ_3(lcd_rgb_mirror_obj, lcd_rgb_mirror);
181+
STATIC MP_DEFINE_CONST_FUN_OBJ_3(lcd_dpi_mirror_obj, lcd_dpi_mirror);
168182

169183

170-
STATIC mp_obj_t lcd_rgb_swap_xy(mp_obj_t self_in, mp_obj_t swap_axes_in)
184+
STATIC mp_obj_t lcd_dpi_swap_xy(mp_obj_t self_in, mp_obj_t swap_axes_in)
171185
{
172-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
186+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
173187

174-
hal_lcd_rgb_swap_xy(self, mp_obj_is_true(swap_axes_in));
188+
hal_lcd_dpi_swap_xy(&self->base, mp_obj_is_true(swap_axes_in));
175189

176190
return mp_const_none;
177191
}
178-
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lcd_rgb_swap_xy_obj, lcd_rgb_swap_xy);
192+
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lcd_dpi_swap_xy_obj, lcd_dpi_swap_xy);
179193

180194

181-
STATIC mp_obj_t lcd_rgb_set_gap(mp_obj_t self_in, mp_obj_t x_gap_in, mp_obj_t y_gap_in)
195+
STATIC mp_obj_t lcd_dpi_set_gap(mp_obj_t self_in,
196+
mp_obj_t x_gap_in,
197+
mp_obj_t y_gap_in)
182198
{
183-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
199+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
184200

185-
hal_lcd_rgb_set_gap(self, mp_obj_get_int(x_gap_in), mp_obj_get_int(y_gap_in));
201+
hal_lcd_dpi_set_gap(
202+
&self->base,
203+
mp_obj_get_int(x_gap_in),
204+
mp_obj_get_int(y_gap_in)
205+
);
186206

187207
return mp_const_none;
188208
}
189-
STATIC MP_DEFINE_CONST_FUN_OBJ_3(lcd_rgb_set_gap_obj, lcd_rgb_set_gap);
209+
STATIC MP_DEFINE_CONST_FUN_OBJ_3(lcd_dpi_set_gap_obj, lcd_dpi_set_gap);
190210

191211

192-
STATIC mp_obj_t lcd_rgb_invert_color(mp_obj_t self_in, mp_obj_t invert_in)
212+
STATIC mp_obj_t lcd_dpi_invert_color(mp_obj_t self_in, mp_obj_t invert_in)
193213
{
194-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
214+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
195215

196-
hal_lcd_rgb_invert_color(self, mp_obj_is_true(invert_in));
216+
hal_lcd_dpi_invert_color(&self->base, mp_obj_is_true(invert_in));
197217

198218
return mp_const_none;
199219
}
200-
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lcd_rgb_invert_color_obj, lcd_rgb_invert_color);
220+
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lcd_dpi_invert_color_obj, lcd_dpi_invert_color);
201221

202222

203-
STATIC mp_obj_t lcd_rgb_disp_off(mp_obj_t self_in, mp_obj_t off_in)
223+
STATIC mp_obj_t lcd_dpi_disp_off(mp_obj_t self_in, mp_obj_t off_in)
204224
{
205-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
225+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
206226

207-
hal_lcd_rgb_disp_off(self, mp_obj_is_true(off_in));
227+
hal_lcd_dpi_disp_off(&self->base, mp_obj_is_true(off_in));
208228

209229
return mp_const_none;
210230
}
211-
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lcd_rgb_disp_off_obj, lcd_rgb_disp_off);
231+
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lcd_dpi_disp_off_obj, lcd_dpi_disp_off);
212232

213233

214-
STATIC mp_obj_t lcd_rgb_backlight_on(mp_obj_t self_in)
234+
STATIC mp_obj_t lcd_dpi_backlight_on(mp_obj_t self_in)
215235
{
216-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
236+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
217237

218238
if (self->backlight != MP_OBJ_NULL) {
219239
mp_hal_pin_obj_t backlight_pin = mp_hal_get_pin_obj(self->backlight);
@@ -223,12 +243,12 @@ STATIC mp_obj_t lcd_rgb_backlight_on(mp_obj_t self_in)
223243

224244
return mp_const_none;
225245
}
226-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_rgb_backlight_on_obj, lcd_rgb_backlight_on);
246+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_dpi_backlight_on_obj, lcd_dpi_backlight_on);
227247

228248

229-
STATIC mp_obj_t lcd_rgb_backlight_off(mp_obj_t self_in)
249+
STATIC mp_obj_t lcd_dpi_backlight_off(mp_obj_t self_in)
230250
{
231-
lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(self_in);
251+
lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(self_in);
232252

233253
if (self->backlight != MP_OBJ_NULL) {
234254
mp_hal_pin_obj_t backlight_pin = mp_hal_get_pin_obj(self->backlight);
@@ -238,19 +258,19 @@ STATIC mp_obj_t lcd_rgb_backlight_off(mp_obj_t self_in)
238258

239259
return mp_const_none;
240260
}
241-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_rgb_backlight_off_obj, lcd_rgb_backlight_off);
261+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_dpi_backlight_off_obj, lcd_dpi_backlight_off);
242262

243263

244264
#if 0
245-
// STATIC mp_obj_t lcd_rgb_rgb565(size_t n_args, const mp_obj_t *args_in)
265+
// STATIC mp_obj_t lcd_dpi_dpi565(size_t n_args, const mp_obj_t *args_in)
246266
// {
247-
// lcd_rgb_obj_t *self = MP_OBJ_TO_PTR(args_in[0]);
267+
// lcd_dpi_obj_t *self = MP_OBJ_TO_PTR(args_in[0]);
248268
// lcd_i80_obj_t *i8080_obj = MP_OBJ_TO_PTR(self->bus_obj);
249269
// uint16_t color = 0;
250270
// uint16_t a = 0x1234;
251271

252-
// color = ((mp_obj_get_int(args_in[1]) & 0xF8) << 8) |
253-
// ((mp_obj_get_int(args_in[2]) & 0xFC) << 3) |
272+
// color = ((mp_obj_get_int(args_in[1]) & 0xF8) << 8) |
273+
// ((mp_obj_get_int(args_in[2]) & 0xFC) << 3) |
254274
// ((mp_obj_get_int(args_in[3]) & 0xF8) >> 3);
255275

256276
// if ((*(char *)&a) == 0x34) {
@@ -265,32 +285,32 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(lcd_rgb_backlight_off_obj, lcd_rgb_backlight_of
265285

266286
// return MP_OBJ_NEW_SMALL_INT(color);
267287
// }
268-
// STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(lcd_rgb_rgb565_obj, 4, 4, lcd_rgb_rgb565);
288+
// STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(lcd_dpi_rgb565_obj, 4, 4, lcd_dpi_rgb565);
269289
#endif
270290

271291

272-
STATIC const mp_rom_map_elem_t lcd_rgb_locals_dict_table[] = {
273-
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&lcd_rgb_deinit_obj) },
274-
{ MP_ROM_QSTR(MP_QSTR_reset), MP_ROM_PTR(&lcd_rgb_reset_obj) },
275-
{ MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&lcd_rgb_init_obj) },
276-
{ MP_ROM_QSTR(MP_QSTR_bitmap), MP_ROM_PTR(&lcd_rgb_bitmap_obj) },
277-
{ MP_ROM_QSTR(MP_QSTR_mirror), MP_ROM_PTR(&lcd_rgb_mirror_obj) },
278-
{ MP_ROM_QSTR(MP_QSTR_swap_xy), MP_ROM_PTR(&lcd_rgb_swap_xy_obj) },
279-
{ MP_ROM_QSTR(MP_QSTR_set_gap), MP_ROM_PTR(&lcd_rgb_set_gap_obj) },
280-
{ MP_ROM_QSTR(MP_QSTR_invert_color), MP_ROM_PTR(&lcd_rgb_invert_color_obj) },
281-
{ MP_ROM_QSTR(MP_QSTR_disp_off), MP_ROM_PTR(&lcd_rgb_disp_off_obj) },
282-
{ MP_ROM_QSTR(MP_QSTR_backlight_on), MP_ROM_PTR(&lcd_rgb_backlight_on_obj) },
283-
{ MP_ROM_QSTR(MP_QSTR_backlight_off), MP_ROM_PTR(&lcd_rgb_backlight_off_obj) },
284-
// { MP_ROM_QSTR(MP_QSTR_color565), MP_ROM_PTR(&lcd_rgb_rgb565_obj) },
285-
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&lcd_rgb_deinit_obj) },
292+
STATIC const mp_rom_map_elem_t lcd_dpi_locals_dict_table[] = {
293+
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&lcd_dpi_deinit_obj) },
294+
{ MP_ROM_QSTR(MP_QSTR_reset), MP_ROM_PTR(&lcd_dpi_reset_obj) },
295+
{ MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&lcd_dpi_init_obj) },
296+
{ MP_ROM_QSTR(MP_QSTR_bitmap), MP_ROM_PTR(&lcd_dpi_bitmap_obj) },
297+
{ MP_ROM_QSTR(MP_QSTR_mirror), MP_ROM_PTR(&lcd_dpi_mirror_obj) },
298+
{ MP_ROM_QSTR(MP_QSTR_swap_xy), MP_ROM_PTR(&lcd_dpi_swap_xy_obj) },
299+
{ MP_ROM_QSTR(MP_QSTR_set_gap), MP_ROM_PTR(&lcd_dpi_set_gap_obj) },
300+
{ MP_ROM_QSTR(MP_QSTR_invert_color), MP_ROM_PTR(&lcd_dpi_invert_color_obj) },
301+
{ MP_ROM_QSTR(MP_QSTR_disp_off), MP_ROM_PTR(&lcd_dpi_disp_off_obj) },
302+
{ MP_ROM_QSTR(MP_QSTR_backlight_on), MP_ROM_PTR(&lcd_dpi_backlight_on_obj) },
303+
{ MP_ROM_QSTR(MP_QSTR_backlight_off), MP_ROM_PTR(&lcd_dpi_backlight_off_obj) },
304+
// { MP_ROM_QSTR(MP_QSTR_color565), MP_ROM_PTR(&lcd_dpi_rgb565_obj) },
305+
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&lcd_dpi_deinit_obj) },
286306
};
287-
STATIC MP_DEFINE_CONST_DICT(lcd_rgb_locals_dict, lcd_rgb_locals_dict_table);
307+
STATIC MP_DEFINE_CONST_DICT(lcd_dpi_locals_dict, lcd_dpi_locals_dict_table);
288308

289309

290-
const mp_obj_type_t lcd_rgb_type = {
310+
const mp_obj_type_t lcd_dpi_type = {
291311
{ &mp_type_type },
292-
.name = MP_QSTR_RGB,
293-
.print = lcd_rgb_print,
294-
.make_new = lcd_rgb_make_new,
295-
.locals_dict = (mp_obj_dict_t *)&lcd_rgb_locals_dict,
296-
};
312+
.name = MP_QSTR_DPI,
313+
.print = lcd_dpi_print,
314+
.make_new = lcd_dpi_make_new,
315+
.locals_dict = (mp_obj_dict_t *)&lcd_dpi_locals_dict,
316+
};

lcd/bus/dpi/dpi_panel.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
#ifndef LCD_RGB_H_
2-
#define LCD_RGB_H_
1+
#ifndef LCD_DPI_H_
2+
#define LCD_DPI_H_
33

44
#include "py/obj.h"
55
#include "mphalport.h"
66
#if USE_ESP_LCD
77
#include "esp_lcd_panel_io.h"
88
#endif
99

10-
typedef struct lcd_rgb_obj_t {
10+
typedef struct lcd_dpi_obj_t {
1111
mp_obj_base_t base;
1212

1313
uint16_t width;
@@ -53,8 +53,8 @@ typedef struct lcd_rgb_obj_t {
5353
#if USE_ESP_LCD
5454
esp_lcd_panel_handle_t panel_handle;
5555
#endif
56-
} lcd_rgb_obj_t;
56+
} lcd_dpi_obj_t;
5757

58-
extern const mp_obj_type_t lcd_rgb_type;
58+
extern const mp_obj_type_t lcd_dpi_type;
5959

6060
#endif

0 commit comments

Comments
 (0)