|
@@ -45,7 +45,6 @@
|
|
|
#define _TUSB_TIMEOUT_H_
|
|
#define _TUSB_TIMEOUT_H_
|
|
|
|
|
|
|
|
#include "tusb_compiler.h"
|
|
#include "tusb_compiler.h"
|
|
|
-#include "tusb_hal.h"
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
#ifdef __cplusplus
|
|
|
extern "C" {
|
|
extern "C" {
|
|
@@ -56,6 +55,8 @@ typedef struct {
|
|
|
uint32_t interval;
|
|
uint32_t interval;
|
|
|
}tu_timeout_t;
|
|
}tu_timeout_t;
|
|
|
|
|
|
|
|
|
|
+extern uint32_t tusb_hal_millis(void);
|
|
|
|
|
+
|
|
|
static inline void tu_timeout_set(tu_timeout_t* tt, uint32_t msec)
|
|
static inline void tu_timeout_set(tu_timeout_t* tt, uint32_t msec)
|
|
|
{
|
|
{
|
|
|
tt->interval = 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;
|
|
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)
|
|
static inline void tu_timeout_wait(uint32_t msec)
|
|
|
{
|
|
{
|
|
|
tu_timeout_t tt;
|
|
tu_timeout_t tt;
|