From 31ff6fecc1b02b3c9e25d66928ff4c9c22f127eb Mon Sep 17 00:00:00 2001 From: htl5241 <50161112+htl5241@users.noreply.github.com> Date: Fri, 23 May 2025 14:21:37 +0800 Subject: [PATCH] =?UTF-8?q?[clock]=E6=B7=BB=E5=8A=A0=20rt=5Ftick=5Fget=5Fd?= =?UTF-8?q?elta=20=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/rtthread.h | 1 + src/clock.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/rtthread.h b/include/rtthread.h index a1c0e77a03..103e26e894 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -98,6 +98,7 @@ void rt_object_put_sethook(void (*hook)(struct rt_object *object)); * clock & timer interface */ rt_tick_t rt_tick_get(void); +rt_tick_t rt_tick_get_delta(rt_tick_t base); void rt_tick_set(rt_tick_t tick); void rt_tick_increase(void); void rt_tick_increase_tick(rt_tick_t tick); diff --git a/src/clock.c b/src/clock.c index 3481f22c61..4277fadc0c 100644 --- a/src/clock.c +++ b/src/clock.c @@ -73,6 +73,22 @@ rt_tick_t rt_tick_get(void) } RTM_EXPORT(rt_tick_get); +/** + * @brief This function will return delta tick from base. + * + * @param base to consider + * + * @return Return delta tick. + */ +rt_tick_t rt_tick_get_delta(rt_tick_t base) +{ + rt_tick_t tnow = rt_tick_get(); + if (tnow >= base) + return tnow - base; + return RT_TICK_MAX - base + tnow + 1; +} +RTM_EXPORT(rt_tick_get_delta); + /** * @brief This function will set current tick. *