From c985f318e4ca5271911816c74f021aaca9e258e4 Mon Sep 17 00:00:00 2001 From: "Mr.M" <64891884+martin-calvin@users.noreply.github.com> Date: Tue, 18 Jul 2023 02:52:56 +0000 Subject: [PATCH] overflow is invalid in oneshot mode --- components/drivers/hwtimer/hwtimer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/drivers/hwtimer/hwtimer.c b/components/drivers/hwtimer/hwtimer.c index f17a08bd8e..27ffff6025 100644 --- a/components/drivers/hwtimer/hwtimer.c +++ b/components/drivers/hwtimer/hwtimer.c @@ -165,6 +165,10 @@ static rt_ssize_t rt_hwtimer_read(struct rt_device *dev, rt_off_t pos, void *buf { cnt = (rt_uint32_t)(timer->freq * timer->period_sec) - cnt; } + if (timer->mode == HWTIMER_MODE_ONESHOT) + { + overflow = 0; + } t = overflow * timer->period_sec + cnt/(float)timer->freq; tv.sec = (rt_int32_t)t;