diff --git a/epicardium/modules/buttons.c b/epicardium/modules/buttons.c index d5b7400693978af327e5fc72df85875ffcc86c2e..fb3b100557b76316137da3ccddabd57dcd23b487 100644 --- a/epicardium/modules/buttons.c +++ b/epicardium/modules/buttons.c @@ -5,28 +5,30 @@ #define BOTTOM_RIGHT 3 #define TOP_RIGHT 6 -static const uint8_t ButtonPin[] = {BOTTOM_LEFT,BOTTOM_RIGHT,TOP_RIGHT}; +static const uint8_t ButtonPin[] = { BOTTOM_LEFT, BOTTOM_RIGHT, TOP_RIGHT }; static uint8_t button_states[4]; //as defined by button pin, 3->reset button - -static void epic_buttons_update(){ - button_states[3] = MAX77650_getDebounceStatusnEN0(); - if(portexpander_detected()){ +static void epic_buttons_update(uint8_t mask) +{ + if (mask > 7) { + button_states[3] = MAX77650_getDebounceStatusnEN0(); + } + if (portexpander_detected() && (mask % 8)) { uint8_t button_status = portexpander_get(); - for(int i=0; i<3; i++){ + for (int i = 0; i < 3; i++) { button_states[i] = (button_status >> ButtonPin[i]) & 1; } } } -uint8_t epic_buttons_read(uint8_t mask){ - epic_buttons_update(); - uint8_t button_status=0; - for(int i=0; i<4; i++){ - if((mask>>i)&1){ - button_status += button_states[i]<<i; +uint8_t epic_buttons_read(uint8_t mask) +{ + epic_buttons_update(mask); + uint8_t button_status = 0; + for (int i = 0; i < 4; i++) { + if ((mask >> i) & 1) { + button_status += button_states[i] << i; } } return button_status; } - diff --git a/pycardium/modules/buttons.c b/pycardium/modules/buttons.c index ad412d9faac14010d550f926404ac4c0ad988550..4057bf220d6b3e9f4ec8d42e02a4733d91bf406a 100644 --- a/pycardium/modules/buttons.c +++ b/pycardium/modules/buttons.c @@ -7,7 +7,7 @@ static mp_obj_t mp_buttons_read(mp_obj_t mask_in) { - uint8_t mask = mp_obj_get_int(mask_in); + uint8_t mask = mp_obj_get_int(mask_in); uint8_t button_states = epic_buttons_read(mask); return MP_OBJ_NEW_SMALL_INT(button_states); } @@ -22,10 +22,12 @@ static const mp_rom_map_elem_t buttons_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_TOP_LEFT), MP_OBJ_NEW_SMALL_INT(3) }, { MP_ROM_QSTR(MP_QSTR_RESET), MP_OBJ_NEW_SMALL_INT(3) }, }; -static MP_DEFINE_CONST_DICT(buttons_module_globals, buttons_module_globals_table); +static MP_DEFINE_CONST_DICT( + buttons_module_globals, buttons_module_globals_table +); const mp_obj_module_t buttons_module = { - .base = { &mp_type_module }, + .base = { &mp_type_module }, .globals = (mp_obj_dict_t *)&buttons_module_globals, };