#include <stdint.h>
#include <stm32h747xx.h>
#ifndef EXTI_H
#define EXTI_H
typedef struct {
EXTI_TypeDef* exti;
SYSCFG_TypeDef* syscfg;
} exti_t;
exti_t* exti_init(EXTI_TypeDef* exti, SYSCFG_TypeDef* syscfg);
void exti_external_interrupt(exti_t* exti, uint8_t line, uint8_t gpio);
// Only 21 positions are now supported. This is too hard for other ones.
void exti_rising_interrupt(exti_t* exti, uint8_t line);
void exti_falling_interrupt(exti_t* exti, uint8_t line);
void exti_disable_interrupt(exti_t* exti, uint8_t line);
void exti_nvic_setup(exti_t* exti, uint8_t line);
#endif // EXTI_H