as3935: fix IRQ setup

This commit is contained in:
King Kévin 2020-06-09 01:07:10 +02:00
parent 6fa46ee86c
commit 5ab9402644
1 changed files with 2 additions and 3 deletions

View File

@ -431,7 +431,7 @@ bool sensor_as3935_setup(void)
sensor_as3935_power_down(); // power down to save power
rcc_periph_clock_enable(RCC_AFIO); // enable alternate function clock for external interrupt
// configure IRQ interrupt
exti_select_source(GPIO_EXTI(SENSOR_AS3935_GPIO_IRQ), GPIO_PIN(SENSOR_AS3935_GPIO_IRQ)); // mask external interrupt of the IRQ pin only for this port
exti_select_source(GPIO_EXTI(SENSOR_AS3935_GPIO_IRQ), GPIO_PORT(SENSOR_AS3935_GPIO_IRQ)); // mask external interrupt of the IRQ pin only for this port
exti_set_trigger(GPIO_EXTI(SENSOR_AS3935_GPIO_IRQ), EXTI_TRIGGER_RISING); // IRQ goes high in interrupt
exti_enable_request(GPIO_EXTI(SENSOR_AS3935_GPIO_IRQ)); // enable external interrupt
nvic_enable_irq(GPIO_NVIC_EXTI_IRQ(SENSOR_AS3935_GPIO_IRQ)); // enable interrupt
@ -562,11 +562,10 @@ bool sensor_as3935_tune(void)
/** interrupt service routine called when IRQ does high to indicate interrupt (or clock outputs) */
void GPIO_EXTI_ISR(SENSOR_AS3935_GPIO_IRQ)(void)
{
exti_reset_request(GPIO_EXTI(SENSOR_AS3935_GPIO_IRQ)); // reset interrupt
if (sensor_as3935_calibrating) {
sensor_as3935_interrupt_count++; // increment pulse count to calculate to frequency
} else {
sensor_as3935_interrupt = true; // notify user
}
exti_reset_request(GPIO_EXTI(SENSOR_AS3935_GPIO_IRQ)); // reset interrupt
}