diff --git a/arch/risc-v/src/esp32c3/esp32c3_tim_lowerhalf.c b/arch/risc-v/src/esp32c3/esp32c3_tim_lowerhalf.c index d7baf881ff..89f5ff4985 100644 --- a/arch/risc-v/src/esp32c3/esp32c3_tim_lowerhalf.c +++ b/arch/risc-v/src/esp32c3/esp32c3_tim_lowerhalf.c @@ -134,6 +134,8 @@ static int esp32c3_timer_handler(int irq, void *context, void *arg) (struct esp32c3_timer_lowerhalf_s *)arg; uint32_t next_interval_us = 0; + ESP32C3_TIM_ACKINT(priv->tim); /* Clear the Interrupt */ + if (priv->callback(&next_interval_us, priv->upper)) { if (next_interval_us > 0) @@ -149,7 +151,7 @@ static int esp32c3_timer_handler(int irq, void *context, void *arg) } ESP32C3_TIM_SETALRM(priv->tim, true); /* Re-enables the alarm */ - ESP32C3_TIM_ACKINT(priv->tim); /* Clear the Interrupt */ + return OK; }