35 return "OsTimer64Api";
45 return Clock::maxTicks() * 0xFFFF;
60 __forceinline
bool IRAM_ATTR
isArmed()
const
68 if(longIntervalCounterLimit != 0) {
76 this->callback.func = callback;
77 this->callback.arg =
arg;
82 delegate = delegateFunction;
83 this->callback.func =
nullptr;
91 if(longIntervalCounterLimit != 0) {
92 interval *= longIntervalCounterLimit;
97 __forceinline
void IRAM_ATTR
arm(
bool repeating)
102 this->repeating = repeating;
103 osTimer.
arm(longIntervalCounterLimit || repeating);
109 longIntervalCounter = 0;
122 bool repeating =
false;
125 uint16_t longIntervalCounter = 0;
126 uint16_t longIntervalCounterLimit = 0;
141 constexpr
auto maxTicks = osTimer.maxTicks();
142 if(interval > maxTicks) {
144 uint32_t div = (interval / (maxTicks + 1)) + 1;
151 longIntervalCounterLimit = div;
153 longIntervalCounterLimit = 0;
155 longIntervalCounter = 0;
156 osTimer.setInterval(interval);
161 if(longIntervalCounterLimit != 0) {
162 longIntervalCounter++;
164 if(longIntervalCounter < longIntervalCounterLimit) {
171 longIntervalCounter = 0;
177 if(callback.func !=
nullptr) {
178 callback.func(callback.arg);
179 }
else if(delegate) {
183 static_cast<TimerClass*
>(
this)->expired();
192 using typename TimerApi::TickType;
193 using typename TimerApi::TimeType;
206 this->
template setIntervalUs<microseconds>();
218 this->
template setIntervalMs<milliseconds>();
Auto-delete callback timer class.
Definition: Timer.h:276
~AutoDeleteTimer()
Definition: Timer.h:281
void expired()
Definition: Timer.h:285
Callback timer class template.
Definition: CallbackTimer.h:76
void stop()
Stops timer.
Definition: CallbackTimer.h:239
bool callbackSet
User has provided callback function.
Definition: CallbackTimer.h:423
void setIntervalUs()
Set timer interval in microseconds (static check)
Definition: CallbackTimer.h:372
void setIntervalMs()
Set timer interval in milliseconds (static check)
Definition: CallbackTimer.h:384
Class template adding delegate callback method support to the basic CallbackTimer template.
Definition: Timer.h:190
DelegateCallbackTimer & initializeMs(uint32_t milliseconds, TimerDelegate delegateFunction)
Initialise millisecond timer.
Definition: Timer.h:227
DelegateCallbackTimer & initializeUs(uint32_t microseconds, TimerDelegate delegateFunction)
Initialise microsecond timer.
Definition: Timer.h:239
DelegateCallbackTimer & initializeMs(TimerDelegate delegateFunction)
Initialise hardware timer in milliseconds, with static check.
Definition: Timer.h:215
void setCallback(TimerDelegate delegateFunction)
Set timer trigger function using Delegate callback method.
Definition: Timer.h:250
DelegateCallbackTimer & initializeUs(TimerDelegate delegateFunction)
Initialise timer in microseconds, with static check.
Definition: Timer.h:203
Class template implementing an extended OS Timer with 64-bit microsecond times and delegate callback ...
Definition: Timer.h:27
static constexpr const char * typeName()
Definition: Timer.h:33
~OsTimer64Api()
Definition: Timer.h:55
void * arg
Definition: Timer.h:119
OsTimer64Api()
Definition: Timer.h:48
void setCallback(TimerDelegate delegateFunction)
Definition: Timer.h:80
TimerCallback func
Definition: Timer.h:118
uint64_t TimeType
Definition: Timer.h:31
void setCallback(TimerCallback callback, void *arg)
Definition: Timer.h:74
TickType ticks() const
Definition: Timer.h:65
static constexpr TickType minTicks()
Definition: Timer.h:38
void arm(bool repeating)
Definition: Timer.h:97
TickType getInterval() const
Definition: Timer.h:88
uint64_t TickType
Definition: Timer.h:30
OsTimerApi::Clock Clock
Definition: Timer.h:29
static constexpr TickType maxTicks()
Definition: Timer.h:43
bool isArmed() const
Definition: Timer.h:60
void disarm()
Definition: Timer.h:106
Implements common system callback timer API.
Definition: SimpleTimer.h:33
void setCallback(TimerCallback callback, void *arg)
Definition: SimpleTimer.h:77
TickType getInterval() const
Definition: SimpleTimer.h:87
void arm(bool repeating)
Definition: SimpleTimer.h:92
TickType ticks() const
Definition: SimpleTimer.h:60
bool isArmed() const
Definition: SimpleTimer.h:55
void disarm()
Definition: SimpleTimer.h:97
OsTimerClock Clock
Definition: SimpleTimer.h:35
Callback timer class.
Definition: Timer.h:263
void expired()
Definition: Timer.h:267
void(*)(void *arg) TimerCallback
Interrupt-compatible C callback function pointer.
Definition: CallbackTimer.h:23
void setInterval(TickType interval)
Definition: Timer.h:139
void longTick()
Definition: Timer.h:159
void setCallback(Callback callback)
Set a callback function that is invoked on each change of the current allocation.
Callback timer API class template.
Definition: CallbackTimer.h:30