summaryrefslogtreecommitdiff
path: root/shared-module/gamepad/__init__.c
diff options
context:
space:
mode:
Diffstat (limited to 'shared-module/gamepad/__init__.c')
-rw-r--r--shared-module/gamepad/__init__.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/shared-module/gamepad/__init__.c b/shared-module/gamepad/__init__.c
index b6c8be215..591a2fa0a 100644
--- a/shared-module/gamepad/__init__.c
+++ b/shared-module/gamepad/__init__.c
@@ -42,8 +42,10 @@ void gamepad_tick(void) {
if (!pin) {
break;
}
- if (!common_hal_digitalio_digitalinout_get_value(pin)) {
- gamepad_current |= 1<<i;
+ digitalio_pull_t pull = common_hal_digitalio_digitalinout_get_pull(pin);
+ bool value = common_hal_digitalio_digitalinout_get_value(pin);
+ if ((pull == PULL_UP && !value) || (pull == PULL_DOWN && value)) {
+ gamepad_current |= 1 << i;
}
}
gamepad_singleton->pressed |= gamepad_singleton->last & gamepad_current;