diff options
Diffstat (limited to 'stmhal/extint.h')
-rw-r--r-- | stmhal/extint.h | 33 |
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; |