From 5047ce62e8c7c4b702d68f29dff42e65200924b1 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 4 Apr 2015 08:19:04 +0000 Subject: Time conversion macros fixes. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7851 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/rt/include/chvt.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'os/rt') diff --git a/os/rt/include/chvt.h b/os/rt/include/chvt.h index 01dc38ac6..ae26beacf 100644 --- a/os/rt/include/chvt.h +++ b/os/rt/include/chvt.h @@ -118,8 +118,8 @@ * @api */ #define MS2ST(msec) \ - ((systime_t)((((((uint32_t)(msec)) * \ - ((uint32_t)CH_CFG_ST_FREQUENCY)) - 1UL) / 1000UL) + 1UL)) + ((systime_t)((((uint32_t)(msec)) * \ + ((uint32_t)CH_CFG_ST_FREQUENCY) + 999UL) / 1000UL)) /** * @brief Microseconds to system ticks. @@ -132,8 +132,8 @@ * @api */ #define US2ST(usec) \ - ((systime_t)((((((uint32_t)(usec)) * \ - ((uint32_t)CH_CFG_ST_FREQUENCY)) - 1UL) / 1000000UL) + 1UL)) + ((systime_t)((((uint32_t)(usec)) * \ + ((uint32_t)CH_CFG_ST_FREQUENCY) + 999999UL) / 1000000UL)) /** * @brief System ticks to seconds. @@ -145,7 +145,7 @@ * * @api */ -#define ST2S(n) (((((n) - 1UL) * 1UL) / CH_CFG_ST_FREQUENCY) + 1UL) +#define ST2S(n) (((n) + CH_CFG_ST_FREQUENCY - 1UL) / CH_CFG_ST_FREQUENCY) /** * @brief System ticks to milliseconds. @@ -157,7 +157,8 @@ * * @api */ -#define ST2MS(n) (((((n) - 1UL) * 1000UL) / CH_CFG_ST_FREQUENCY) + 1UL) +#define ST2MS(n) (((n) * 1000UL + CH_CFG_ST_FREQUENCY - 1UL) / \ + CH_CFG_ST_FREQUENCY) /** * @brief System ticks to microseconds. @@ -169,7 +170,8 @@ * * @api */ -#define ST2US(n) (((((n) - 1UL) * 1000000UL) / CH_CFG_ST_FREQUENCY) + 1UL) +#define ST2US(n) (((n) * 1000000UL + CH_CFG_ST_FREQUENCY - 1UL) / \ + CH_CFG_ST_FREQUENCY) /** @} */ /*===========================================================================*/ -- cgit v1.2.3