Explorar el Código

overflow is invalid in oneshot mode

Mr.M hace 2 años
padre
commit
c985f318e4
Se han modificado 1 ficheros con 4 adiciones y 0 borrados
  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;