summaryrefslogtreecommitdiffstatshomepage
path: root/stmhal/extint.h
diff options
context:
space:
mode:
Diffstat (limited to 'stmhal/extint.h')
-rw-r--r--stmhal/extint.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/stmhal/extint.h b/stmhal/extint.h
new file mode 100644
index 0000000000..c64931211f
--- /dev/null
+++ b/stmhal/extint.h
@@ -0,0 +1,33 @@
+// Vectors 0-15 are for regular pins
+// Vectors 16-22 are for internal sources.
+//
+// Use the following constants for the internal sources:
+
+#define EXTI_PVD_OUTPUT (16)
+#define EXTI_RTC_ALARM (17)
+#define EXTI_USB_OTG_FS_WAKEUP (18)
+#define EXTI_ETH_WAKEUP (19)
+#define EXTI_USB_OTG_HS_WAKEUP (20)
+#define EXTI_RTC_TIMESTAMP (21)
+#define EXTI_RTC_WAKEUP (22)
+
+#define EXTI_NUM_VECTORS (23)
+
+#define EXTI_MODE_INTERRUPT (offsetof(EXTI_TypeDef, IMR))
+#define EXTI_MODE_EVENT (offsetof(EXTI_TypeDef, EMR))
+
+#define EXTI_TRIGGER_RISING (offsetof(EXTI_TypeDef, RTSR))
+#define EXTI_TRIGGER_FALLING (offsetof(EXTI_TypeDef, FTSR))
+#define EXTI_TRIGGER_RISING_FALLING (EXTI_TRIGGER_RISING + EXTI_TRIGGER_FALLING) // just different from RISING or FALLING
+
+void extint_init(void);
+
+uint extint_register(mp_obj_t pin_obj, mp_obj_t mode_obj, mp_obj_t trigger_obj, mp_obj_t callback_obj, bool override_callback_obj, void *param);
+
+void extint_enable(uint line);
+void extint_disable(uint line);
+void extint_swint(uint line);
+
+void Handle_EXTI_Irq(uint32_t line);
+
+extern const mp_obj_type_t extint_type;