未验证 提交 efd8b404 编写于 作者: B Bernard Xiong 提交者: GitHub

Merge pull request #2480 from HubertXie/master

【修复】修复ms转tick时计算溢出问题
......@@ -75,7 +75,7 @@ void rt_system_tick_init(void);
rt_tick_t rt_tick_get(void);
void rt_tick_set(rt_tick_t tick);
void rt_tick_increase(void);
int rt_tick_from_millisecond(rt_int32_t ms);
rt_tick_t rt_tick_from_millisecond(rt_int32_t ms);
void rt_system_timer_init(void);
void rt_system_timer_thread_init(void);
......
......@@ -107,15 +107,20 @@ void rt_tick_increase(void)
*
* @return the calculated tick
*/
int rt_tick_from_millisecond(rt_int32_t ms)
rt_tick_t rt_tick_from_millisecond(rt_int32_t ms)
{
int tick;
rt_tick_t tick;
if (ms < 0)
{
tick = RT_WAITING_FOREVER;
}
else
tick = (RT_TICK_PER_SECOND * ms + 999) / 1000;
{
tick = RT_TICK_PER_SECOND * (ms / 1000);
tick += (RT_TICK_PER_SECOND * (ms%1000) + 999) / 1000;
}
/* return the calculated tick */
return tick;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册