From ab88fa8455f3450d1e79846adf9f2a907cd51ced Mon Sep 17 00:00:00 2001 From: zhji Date: Mon, 2 Jun 2025 21:34:05 +0800 Subject: [PATCH] [feat] add timer_delay_us function --- driver/inc/timer.h | 1 + driver/src/timer.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/driver/inc/timer.h b/driver/inc/timer.h index 2b8530f..a8f784d 100644 --- a/driver/inc/timer.h +++ b/driver/inc/timer.h @@ -21,6 +21,7 @@ uint32_t timer_count_h_read_raw(void); void timer_start(void); void timer_stop(void); int timer_is_stopped(void); +void timer_delay_us(uint32_t us); void timer_alarm_set(uint8_t alarm_id, uint32_t alarm_count); uint32_t timer_alarm_get(uint8_t alarm_id); diff --git a/driver/src/timer.c b/driver/src/timer.c index 63d1002..a0a732d 100644 --- a/driver/src/timer.c +++ b/driver/src/timer.c @@ -44,6 +44,13 @@ int timer_is_stopped(void) } } +void timer_delay_us(uint32_t us) +{ + uint64_t time = timer_count_read(); + time += us; + while (timer_count_read() < time); +} + void timer_alarm_set(uint8_t alarm_id, uint32_t alarm_count) { if (alarm_id >= TIMER_ALARM_MAX) {