Browse Source

overflow is invalid in oneshot mode

Mr.M 2 years ago
parent
commit
c985f318e4
1 changed files with 4 additions and 0 deletions
  1. 4 0
      components/drivers/hwtimer/hwtimer.c

+ 4 - 0
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;