X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Ftimer.h;h=d5bb77437a2fda0c98c578a857057585fa5307c7;hb=46d71b74e8eb739d7e4682a129b5eac27d6b902a;hp=7e2a628871f7a069f85d9f29a8095dc4244d6781;hpb=c338086be997ecb73aacaea64b5a8eb1c11a614c;p=bertos.git diff --git a/drv/timer.h b/drv/timer.h index 7e2a6288..d5bb7743 100644 --- a/drv/timer.h +++ b/drv/timer.h @@ -158,7 +158,7 @@ INLINE hptime_t us_to_hptime(utime_t us) #if TIMER_HW_HPTICKS_PER_SEC > 10000000UL return us * ((TIMER_HW_HPTICKS_PER_SEC + 500000UL) / 1000000UL); #else - return (us * TIMER_HW_HPTICKS_PER_SEC + 500000UL) / 1000000UL; + return (us * ((TIMER_HW_HPTICKS_PER_SEC + 500) / 1000UL) + 500) / 1000UL; #endif } @@ -166,9 +166,9 @@ INLINE hptime_t us_to_hptime(utime_t us) INLINE utime_t hptime_to_us(hptime_t hpticks) { #if TIMER_HW_HPTICKS_PER_SEC < 100000UL - return hpticks * (1000000UL / TIMER_HW_HPTICKS_PER_SEC); + return hpticks * ((1000000UL + TIMER_HW_HPTICKS_PER_SEC / 2) / TIMER_HW_HPTICKS_PER_SEC); #else - return (hpticks * 1000000UL) / TIMER_HW_HPTICKS_PER_SEC; + return (hpticks * 1000UL) / ((TIMER_HW_HPTICKS_PER_SEC + 500) / 1000UL); #endif /* TIMER_HW_HPTICKS_PER_SEC < 100000UL */ }