|
3 | 3 | *
|
4 | 4 | * SHA2017 Badge Firmware https://wiki.sha2017.org/w/Projects:Badge/MicroPython
|
5 | 5 | *
|
6 |
| - * Based on work by EMF for their TiLDA 3 badge |
| 6 | + * Based on work by EMF for their TiLDA MK3 badge |
7 | 7 | * https://github.com/emfcamp/micropython/tree/tilda-master/stmhal
|
8 | 8 | *
|
9 | 9 | * The MIT License (MIT)
|
|
40 | 40 |
|
41 | 41 | #include "gfx.h"
|
42 | 42 | #include "gfxconf.h"
|
| 43 | +#include "ginput_lld_toggle_config.h" |
43 | 44 |
|
44 | 45 | #include "py/mperrno.h"
|
45 | 46 | #include "py/mphal.h"
|
@@ -526,6 +527,22 @@ STATIC mp_obj_t ugfx_fill_rounded_box(mp_uint_t n_args, const mp_obj_t *args) {
|
526 | 527 | STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(ugfx_fill_rounded_box_obj, 6, 6,
|
527 | 528 | ugfx_fill_rounded_box);
|
528 | 529 |
|
| 530 | +// INPUT |
| 531 | + |
| 532 | +/// \method poll() |
| 533 | +/// |
| 534 | +/// calls gfxYield, which will handle widget redrawing when for inputs. |
| 535 | +/// Register as follows: |
| 536 | +/// tim = pyb.Timer(3) |
| 537 | +/// tim.init(freq=60) |
| 538 | +/// tim.callback(lambda t:ugfx.poll()) |
| 539 | +/// |
| 540 | +STATIC mp_obj_t ugfx_poll(void) { |
| 541 | + gfxYield(); |
| 542 | + return mp_const_none; |
| 543 | +} |
| 544 | +STATIC MP_DEFINE_CONST_FUN_OBJ_0(ugfx_poll_obj, ugfx_poll); |
| 545 | + |
529 | 546 | // DEMO
|
530 | 547 |
|
531 | 548 | STATIC mp_obj_t ugfx_demo(mp_obj_t hacking) {
|
@@ -583,8 +600,26 @@ STATIC const mp_rom_map_elem_t ugfx_module_globals_table[] = {
|
583 | 600 | MP_OBJ_NEW_SMALL_INT(justifyCenter)},
|
584 | 601 | {MP_OBJ_NEW_QSTR(MP_QSTR_justifyRight), MP_OBJ_NEW_SMALL_INT(justifyRight)},
|
585 | 602 |
|
| 603 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_UP), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_UP)}, |
| 604 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_DOWN), |
| 605 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_DOWN)}, |
| 606 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_LEFT), |
| 607 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_LEFT)}, |
| 608 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_RIGHT), |
| 609 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_RIGHT)}, |
| 610 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_MID), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_MID)}, |
| 611 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_A), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_A)}, |
| 612 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_B), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_B)}, |
| 613 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_SELECT), |
| 614 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_SELECT)}, |
| 615 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_START), |
| 616 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_START)}, |
| 617 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_FLASH), |
| 618 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_FLASH)}, |
| 619 | + |
586 | 620 | {MP_OBJ_NEW_QSTR(MP_QSTR_clear), (mp_obj_t)&ugfx_clear_obj},
|
587 | 621 | {MP_OBJ_NEW_QSTR(MP_QSTR_flush), (mp_obj_t)&ugfx_flush_obj},
|
| 622 | + {MP_OBJ_NEW_QSTR(MP_QSTR_poll), (mp_obj_t)&ugfx_poll_obj}, |
588 | 623 |
|
589 | 624 | {MP_OBJ_NEW_QSTR(MP_QSTR_get_string_width),
|
590 | 625 | (mp_obj_t)&ugfx_get_string_width_obj},
|
@@ -617,6 +652,5 @@ STATIC const mp_rom_map_elem_t ugfx_module_globals_table[] = {
|
617 | 652 | STATIC MP_DEFINE_CONST_DICT(ugfx_module_globals, ugfx_module_globals_table);
|
618 | 653 |
|
619 | 654 | const mp_obj_module_t ugfx_module = {
|
620 |
| - .base = {&mp_type_module}, |
621 |
| - .globals = (mp_obj_dict_t *)&ugfx_module_globals, |
| 655 | + .base = {&mp_type_module}, .globals = (mp_obj_dict_t *)&ugfx_module_globals, |
622 | 656 | };
|
0 commit comments