Browse Source

[clock]添加 rt_tick_get_delta 函数

htl5241 1 month ago
parent
commit
31ff6fecc1
2 changed files with 17 additions and 0 deletions
  1. 1 0
      include/rtthread.h
  2. 16 0
      src/clock.c

+ 1 - 0
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);

+ 16 - 0
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.
  *