driver: fix timer driver initialization sequence to not trigger interrupt immediately

add timer_hal_reset_periph()
fix timer_init() to reset timer counter during init
This commit is contained in:
Alex Lisitsyn
2021-09-16 19:45:33 +08:00
parent dc71fa895d
commit c5d0d89508
4 changed files with 55 additions and 4 deletions

View File

@@ -26,3 +26,10 @@ void timer_hal_get_status_reg_mask_bit(timer_hal_context_t *hal, uint32_t *statu
*status_reg = timer_ll_get_intr_status_reg(hal->dev);
*mask_bit = timer_ll_get_intr_mask_bit(hal->dev, hal->idx);
}
void timer_hal_reset_periph(timer_hal_context_t *hal)
{
timer_ll_intr_disable(hal->dev, hal->idx);
timer_ll_set_counter_enable(hal->dev, hal->idx, TIMER_PAUSE);
timer_ll_set_counter_value(hal->dev, hal->idx, 0ULL);
}