diff --git a/pycardium/modules/py/display.py b/pycardium/modules/py/display.py index 3a93af78cc5d359ee96cceb10cc28b10a33e0351..d6b5386477f5bd08d9fe94583b7e331538cf320c 100644 --- a/pycardium/modules/py/display.py +++ b/pycardium/modules/py/display.py @@ -91,6 +91,16 @@ class Display: sys_display.pixel(x, y, col) return self + def backlight(self, brightness): + """ + Set display backlight brightness + + :param brightness: backlight brightness 0 <= brightness <= 1000 + """ + + sys_display.backlight(brightness) + return self + def line(self, xs, ys, xe, ye, *, col=None, dotted=False, size=1): """ Draws a line on the display. diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h index e418c24db58105796aa5b2cb34a1d80acd82af3b..5c9c63a17f50dcf976d2001f641feb3ce274b86d 100644 --- a/pycardium/modules/qstrdefs.h +++ b/pycardium/modules/qstrdefs.h @@ -85,6 +85,7 @@ Q(sys_display) Q(display) Q(print) Q(pixel) +Q(backlight) Q(line) Q(rect) Q(circ) diff --git a/pycardium/modules/sys_display.c b/pycardium/modules/sys_display.c index 835f059f802661d804c7c0c2fc8bb7658de22ad3..9762f9438ae2a03a28508e8664e4709cd0534e7e 100644 --- a/pycardium/modules/sys_display.c +++ b/pycardium/modules/sys_display.c @@ -79,6 +79,21 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN( display_pixel_obj, 3, 3, mp_display_pixel ); +/* set display backlight brightness */ +static mp_obj_t mp_display_backlight(size_t n_args, const mp_obj_t *args) +{ + uint16_t brightness = mp_obj_get_int(args[0]); + + int res = epic_disp_backlight(brightness); + if (res < 0) { + mp_raise_OSError(-res); + } + return mp_const_none; +} +static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN( + display_backlight_obj, 1, 1, mp_display_backlight +); + /* draw line on the display */ static mp_obj_t mp_display_line(size_t n_args, const mp_obj_t *args) { @@ -220,6 +235,7 @@ static const mp_rom_map_elem_t display_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&display_close_obj) }, { MP_ROM_QSTR(MP_QSTR_print), MP_ROM_PTR(&display_print_obj) }, { MP_ROM_QSTR(MP_QSTR_pixel), MP_ROM_PTR(&display_pixel_obj) }, + { MP_ROM_QSTR(MP_QSTR_backlight), MP_ROM_PTR(&display_backlight_obj) }, { MP_ROM_QSTR(MP_QSTR_line), MP_ROM_PTR(&display_line_obj) }, { MP_ROM_QSTR(MP_QSTR_rect), MP_ROM_PTR(&display_rect_obj) }, { MP_ROM_QSTR(MP_QSTR_circ), MP_ROM_PTR(&display_circ_obj) },