summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhtl5241 <[email protected]>2025-05-23 14:21:37 +0800
committerGitHub <[email protected]>2025-05-23 14:21:37 +0800
commit31ff6fecc1b02b3c9e25d66928ff4c9c22f127eb (patch)
treec95b6d42d76fce58e7e4126a388b762a5d298e3d
parent99fc1bb72b81b8da744ef8eb89d6a9e1d28716ce (diff)
[clock]添加 rt_tick_get_delta 函数
-rw-r--r--include/rtthread.h1
-rw-r--r--src/clock.c16
2 files changed, 17 insertions, 0 deletions
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
@@ -74,6 +74,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.
*
* @param tick is the value that you will set.