fix: stm32l0 low-power EXTI IRQ handler wiped pending bits before they were checked

This commit is contained in:
Lena Berlin 2024-09-11 11:36:24 -04:00
parent 1cf778904d
commit df0fc04198
No known key found for this signature in database
GPG Key ID: 807A4B046E5AFC74

View File

@ -41,9 +41,6 @@ fn exticr_regs() -> pac::afio::Afio {
}
unsafe fn on_irq() {
#[cfg(feature = "low-power")]
crate::low_power::on_wakeup_irq();
#[cfg(not(any(exti_c0, exti_g0, exti_u0, exti_l5, exti_u5, exti_h5, exti_h50)))]
let bits = EXTI.pr(0).read().0;
#[cfg(any(exti_c0, exti_g0, exti_u0, exti_l5, exti_u5, exti_h5, exti_h50))]
@ -68,6 +65,9 @@ unsafe fn on_irq() {
EXTI.rpr(0).write_value(Lines(bits));
EXTI.fpr(0).write_value(Lines(bits));
}
#[cfg(feature = "low-power")]
crate::low_power::on_wakeup_irq();
}
struct BitIter(u32);