uint32_t ao_last_exti;
static void ao_exti_range_isr(uint8_t first, uint8_t last, uint16_t mask) {
- uint16_t pending = (ao_last_exti = stm_exti.pr) & mask;
+ uint16_t pending = (uint16_t) (ao_last_exti = stm_exti.pr) & mask;
uint8_t pin;
static uint16_t last_mask;
static uint8_t last_pin;
void
ao_exti_setup (struct stm_gpio *gpio, uint8_t pin, uint8_t mode, void (*callback)(void)) {
uint32_t mask = 1 << pin;
- uint32_t pupdr;
uint8_t irq;
uint8_t prio;
/* configure gpio to interrupt routing */
stm_exticr_set(gpio, pin);
+#if 0
if (!(mode & AO_EXTI_PIN_NOCONFIGURE)) {
+ uint32_t pupdr;
/* configure pin as input, setting selected pull-up/down mode */
stm_moder_set(gpio, pin, STM_MODER_INPUT);
switch (mode & (AO_EXTI_MODE_PULL_UP|AO_EXTI_MODE_PULL_DOWN)) {
}
stm_pupdr_set(gpio, pin, pupdr);
}
+#endif
/* Set interrupt mask and rising/falling mode */
stm_exti.imr &= ~mask;