diff options
| -rw-r--r-- | atmel-samd/main.c | 4 | ||||
| -rw-r--r-- | shared-module/gamepad/__init__.c | 4 | ||||
| -rw-r--r-- | shared-module/gamepad/__init__.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/atmel-samd/main.c b/atmel-samd/main.c index 79b5604e8..7bc4a87ed 100644 --- a/atmel-samd/main.c +++ b/atmel-samd/main.c @@ -61,6 +61,7 @@ #include "common-hal/pulseio/PWMOut.h" #include "common-hal/touchio/TouchIn.h" #include "common-hal/usb_hid/__init__.h" +#include "shared-module/gamepad/__init__.h" #include "autoreload.h" #include "flash_api.h" @@ -202,6 +203,9 @@ void reset_samd21(void) { pwmout_reset(); analogin_reset(); +#ifdef CIRCUITPY_GAMEPAD_TICKS + gamepad_reset(); +#endif // TODO: move this to analogout_reset() // Wait for the DAC to sync then reset. diff --git a/shared-module/gamepad/__init__.c b/shared-module/gamepad/__init__.c index 1aebf611d..b6c8be215 100644 --- a/shared-module/gamepad/__init__.c +++ b/shared-module/gamepad/__init__.c @@ -49,3 +49,7 @@ void gamepad_tick(void) { gamepad_singleton->pressed |= gamepad_singleton->last & gamepad_current; gamepad_singleton->last = gamepad_current; } + +void gamepad_reset(void) { + gamepad_singleton = NULL; +} diff --git a/shared-module/gamepad/__init__.h b/shared-module/gamepad/__init__.h index eacd72366..1fae570f9 100644 --- a/shared-module/gamepad/__init__.h +++ b/shared-module/gamepad/__init__.h @@ -28,5 +28,6 @@ #define MICROPY_INCLUDED_GAMEPAD_H void gamepad_tick(void); +void gamepad_reset(void); #endif // MICROPY_INCLUDED_GAMEPAD_H |
