Skip to content

Commit

Permalink
driver/timer: only re-enable alarm in callback when auto reload is true
Browse files Browse the repository at this point in the history
closes #7001
  • Loading branch information
L-KAYA committed Jun 17, 2021
1 parent fd1a67d commit 45ee699
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions components/driver/timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,12 @@ static void IRAM_ATTR timer_isr_default(void *arg)
is_awoken = timer_obj->timer_isr_fun.fn(timer_obj->timer_isr_fun.args);
//Clear intrrupt status
timer_hal_clear_intr_status(&(timer_obj->hal));
//After the alarm has been triggered, we need enable it again, so it is triggered the next time.
timer_hal_set_alarm_enable(&(timer_obj->hal), TIMER_ALARM_EN);
//If the timer is set to auto reload, we need enable it again, so it is triggered the next time.
if (timer_hal_get_auto_reload(&timer_obj->hal)) {
timer_hal_set_alarm_enable(&(timer_obj->hal), TIMER_ALARM_EN);
} else {
timer_hal_set_alarm_enable(&(timer_obj->hal), TIMER_ALARM_DIS);
}
}
}
TIMER_EXIT_CRITICAL(&timer_spinlock[timer_obj->timer_isr_fun.isr_timer_group]);
Expand Down

0 comments on commit 45ee699

Please sign in to comment.