diff options
Diffstat (limited to 'src/common/tusb_timeout.h')
| -rw-r--r-- | src/common/tusb_timeout.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/common/tusb_timeout.h b/src/common/tusb_timeout.h index 7c51ff36f..9d80f5fe7 100644 --- a/src/common/tusb_timeout.h +++ b/src/common/tusb_timeout.h @@ -45,7 +45,6 @@ #define _TUSB_TIMEOUT_H_
#include "tusb_compiler.h"
-#include "tusb_hal.h"
#ifdef __cplusplus
extern "C" {
@@ -56,6 +55,8 @@ typedef struct { uint32_t interval;
}tu_timeout_t;
+extern uint32_t tusb_hal_millis(void);
+
static inline void tu_timeout_set(tu_timeout_t* tt, uint32_t msec)
{
tt->interval = msec;
@@ -67,6 +68,18 @@ static inline bool tu_timeout_expired(tu_timeout_t* tt) return ( tusb_hal_millis() - tt->start ) >= tt->interval;
}
+// For used with periodic event to prevent drift
+static inline void tu_timeout_reset(tu_timeout_t* tt)
+{
+ tt->start += tt->interval;
+}
+
+static inline void tu_timeout_restart(tu_timeout_t* tt)
+{
+ tt->start = tusb_hal_millis();
+}
+
+
static inline void tu_timeout_wait(uint32_t msec)
{
tu_timeout_t tt;
|
