From 59f63eaef6d1024163864c9b30f879efc9dfd682 Mon Sep 17 00:00:00 2001 From: Radomir Dopieralski Date: Thu, 23 Aug 2018 23:22:47 +0200 Subject: Handle new buttons --- shared-module/_pew/__init__.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'shared-module/_pew/__init__.c') diff --git a/shared-module/_pew/__init__.c b/shared-module/_pew/__init__.c index 2e09932f3..e44a4c0e3 100644 --- a/shared-module/_pew/__init__.c +++ b/shared-module/_pew/__init__.c @@ -36,6 +36,8 @@ void pew_tick(void) { static uint8_t col = 0; static uint8_t turn = 0; + static uint8_t pressed = 0; + static uint8_t last_pressed = 0; digitalio_digitalinout_obj_t *pin; pew_obj_t* pew = MP_STATE_VM(pew_singleton); @@ -44,12 +46,18 @@ void pew_tick(void) { pin = MP_OBJ_TO_PTR(pew->cols[col]); ++col; if (col >= pew->cols_size) { + pew->pressed |= last_pressed & pressed; + last_pressed = pressed; + pressed = 0; col = 0; ++turn; if (turn >= 8) { turn = 0; } } + if (!common_hal_digitalio_digitalinout_get_value(pew->buttons)) { + pressed |= 1 << col; + } common_hal_digitalio_digitalinout_set_value(pin, true); for (size_t x = 0; x < pew->rows_size; ++x) { pin = MP_OBJ_TO_PTR(pew->rows[x]); -- cgit v1.2.3