[drivers][hwtimer] Fix compilation warning
@@ -40,7 +40,7 @@ rt_inline rt_uint32_t timeout_calc(rt_hwtimer_t *timer, rt_hwtimerval_t *tv)
if (timeout <= overflow)
{
- counter = timeout*timer->freq;
+ counter = (rt_uint32_t)(timeout * timer->freq);
devi = tv_sec - (counter / (float)timer->freq) * i;
/* Minimum calculation error */
if (devi > devi_min)
@@ -65,7 +65,7 @@ rt_inline rt_uint32_t timeout_calc(rt_hwtimer_t *timer, rt_hwtimerval_t *tv)
timer->cycles = i;
timer->reload = i;
timer->period_sec = timeout;
- counter = timeout*timer->freq;
+ counter = (rt_uint32_t)(timeout * timer->freq);
return counter;
}
@@ -160,12 +160,12 @@ static rt_size_t rt_hwtimer_read(struct rt_device *dev, rt_off_t pos, void *buff
if (timer->info->cntmode == HWTIMER_CNTMODE_DW)
{
- cnt = (timer->freq * timer->period_sec) - cnt;
+ cnt = (rt_uint32_t)(timer->freq * timer->period_sec) - cnt;
}
t = overflow * timer->period_sec + cnt/(float)timer->freq;
- tv.sec = t;
- tv.usec = (t - tv.sec) * 1000000;
+ tv.sec = (rt_int32_t)t;
+ tv.usec = (rt_int32_t)((t - tv.sec) * 1000000);
size = size > sizeof(tv)? sizeof(tv) : size;
rt_memcpy(buffer, &tv, size);
