aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--atmel-samd/main.c4
-rw-r--r--shared-module/gamepad/__init__.c4
-rw-r--r--shared-module/gamepad/__init__.h1
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