From db1ceea7c9ebef91ac8dd68f31fdb2a6485e9ea8 Mon Sep 17 00:00:00 2001 From: yueling hu <502966985@qq.com> Date: Wed, 21 May 2025 14:48:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0rt=5Fdelta=5Ftick=5Fget?= =?UTF-8?q?=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 | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/rtthread.h b/include/rtthread.h index a1c0e77a038..c08edc30433 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_delta_tick_get(rt_tick_t last_time); 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 3481f22c61c..948db3a6388 100644 --- a/src/clock.c +++ b/src/clock.c @@ -73,6 +73,25 @@ rt_tick_t rt_tick_get(void) } RTM_EXPORT(rt_tick_get); +/** + * @brief This function will return delta tick from last_time. + * + * @param last_time to consider + * + * @return Return delta tick. + */ + rt_tick_t rt_delta_tick_get(rt_tick_t last_time) + { + rt_tick_t delta; + rt_tick_t tnow = rt_tick_get(); + if (tnow >= last_time) + delta = tnow - last_time; + else + delta = RT_TICK_MAX - last_time + tnow + 1; + return delta; + } + RTM_EXPORT(rt_delta_tick_get); + /** * @brief This function will set current tick. *