diff options
Diffstat (limited to 'os/hal/ports/NRF5/NRF52832/nrf52_isr.c')
-rw-r--r-- | os/hal/ports/NRF5/NRF52832/nrf52_isr.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/os/hal/ports/NRF5/NRF52832/nrf52_isr.c b/os/hal/ports/NRF5/NRF52832/nrf52_isr.c index 7374f36..431bb3b 100644 --- a/os/hal/ports/NRF5/NRF52832/nrf52_isr.c +++ b/os/hal/ports/NRF5/NRF52832/nrf52_isr.c @@ -41,6 +41,10 @@ /* Driver local functions. */
/*===========================================================================*/
+#if (HAL_USE_ICU && NRF5_ICU_USE_GPIOTE_PPI)
+extern void icu_lld_serve_gpiote_interrupt(ICUDriver *icup);
+#endif
+
/*===========================================================================*/
/* Driver interrupt handlers. */
/*===========================================================================*/
@@ -53,15 +57,21 @@ OSAL_IRQ_HANDLER(Vector58) {
OSAL_IRQ_PROLOGUE();
-
+
+#if (HAL_USE_ICU && NRF5_ICU_USE_GPIOTE_PPI)
+ icu_lld_serve_gpiote_interrupt(&ICUD1);
+#endif
+
+#if (HAL_USE_PAL && (PAL_USE_WAIT || PAL_USE_CALLBACKS))
for (int ch = 0; ch < NRF5_GPIOTE_NUM_CHANNELS; ch++)
{
if (NRF_GPIOTE->EVENTS_IN[ch])
{
- NRF_GPIOTE->EVENTS_IN[ch] = 0;
- _pal_isr_code(ch);
+ NRF_GPIOTE->EVENTS_IN[ch] = 0;
+ _pal_isr_code(ch);
}
}
+#endif
OSAL_IRQ_EPILOGUE();
}
|