diff options
author | Dave Hylands <dhylands@gmail.com> | 2019-02-14 12:38:48 -0800 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2019-02-19 15:17:47 +1100 |
commit | a270cf280b22a969581a7f1ca1ad6ba071bad299 (patch) | |
tree | edee01f7c7b15c3dc897560aca4a22895a773d20 | |
parent | 67b326d97e6363906b9e8dca8b86130bece69d3a (diff) |
stm32/stm32_it: Fix RTC IRQ handler to handle all EXTI IRQs on F0 MCUs.
-rw-r--r-- | ports/stm32/stm32_it.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ports/stm32/stm32_it.c b/ports/stm32/stm32_it.c index 88e7f5bfe..0f2be4c68 100644 --- a/ports/stm32/stm32_it.c +++ b/ports/stm32/stm32_it.c @@ -509,8 +509,18 @@ void RTC_WKUP_IRQHandler(void) { void RTC_IRQHandler(void) { IRQ_ENTER(RTC_IRQn); - RTC->ISR &= ~RTC_ISR_WUTF; // clear wakeup interrupt flag - Handle_EXTI_Irq(EXTI_RTC_WAKEUP); // clear EXTI flag and execute optional callback + if (RTC->ISR & RTC_ISR_WUTF) { + RTC->ISR &= ~RTC_ISR_WUTF; // clear wakeup interrupt flag + Handle_EXTI_Irq(EXTI_RTC_WAKEUP); // clear EXTI flag and execute optional callback + } + if (RTC->ISR & RTC_ISR_ALRAF) { + RTC->ISR &= ~RTC_ISR_ALRAF; // clear Alarm A flag + Handle_EXTI_Irq(EXTI_RTC_ALARM); // clear EXTI flag and execute optional callback + } + if (RTC->ISR & RTC_ISR_TSF) { + RTC->ISR &= ~RTC_ISR_TSF; // clear timestamp flag + Handle_EXTI_Irq(EXTI_RTC_TIMESTAMP); // clear EXTI flag and execute optional callback + } IRQ_EXIT(RTC_IRQn); } |