18 uint32_t mPrevTrigger;
34 void setPeriod(uint32_t period) { mPeriod = period; };
36 uint32_t getPeriod()
const {
return mPeriod; };
37 uint32_t getElapsed()
const {
return getTime() - mPrevTrigger; }
38 uint32_t getRemaining()
const {
return mPeriod - getElapsed(); }
39 uint32_t getLastTriggerTime()
const {
return mPrevTrigger; }
42 bool isReady = not isInit or (getElapsed() >= mPeriod);
50 void reset() { mPrevTrigger = getTime(); };
51 void trigger() { mPrevTrigger = getTime() - mPeriod; };
53 operator bool() {
return ready(); }
56#define EVERY_N_MILLIS_I(NAME, N) \
57 static CEveryNMillis NAME(N); \
60#define EVERY_N_MILLIS_REFRESH_I(NAME, N) \
61 static CEveryNMillis NAME(N); \
65#define EVERY_N_MILLIS_WITH_COND_I(NAME, COND, N) \
66 static CEveryNMillis NAME(N); \
70#define EVERY_N_MILLIS(N) EVERY_N_MILLIS_I(PER##__COUNTER__, N)
72#define EVERY_N_MILLIS_REFRESH(N) EVERY_N_MILLIS_REFRESH_I(PER##__COUNTER__, N)
74#define EVERY_N_MILLIS_COND(N, COND) EVERY_N_MILLIS_WITH_COND_I(PER##__COUNTER__, COND, N)
define time routines
Definition: time_utils.h:16
Program scope.
Definition: control_fixed_modes.hpp:12
Define all time related platform functions.