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;
126 uint16_t longIntervalCounterLimit = 0;
142 if(interval > maxTicks) {
144 uint32_t div = (interval / (maxTicks + 1)) + 1;
151 longIntervalCounterLimit = div;
153 longIntervalCounterLimit = 0;
155 longIntervalCounter = 0;
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>();
230 this->setIntervalMs(milliseconds);
242 this->setIntervalUs(microseconds);
255 this->callbackSet =
bool(delegateFunction);
uint64_t TickType
Definition: Timer.h:30
static constexpr const char * typeName()
Definition: Timer.h:33
void disarm()
Definition: SimpleTimer.h:97
void expired()
Definition: Timer.h:267
static constexpr TickType minTicks()
Definition: Timer.h:38
uint64_t TimeType
Definition: Timer.h:31
void disarm()
Definition: Timer.h:106
void setCallback(TimerDelegate delegateFunction)
Set timer trigger function using Delegate callback method.
Definition: Timer.h:250
void * arg
Definition: Timer.h:119
void setCallback(TimerCallback callback, void *arg)
Definition: SimpleTimer.h:77
TickType ticks() const
Definition: SimpleTimer.h:60
void longTick()
Definition: Timer.h:159
Callback timer class template.
Definition: CallbackTimer.h:70
static constexpr TickType maxTicks()
Definition: Timer.h:43
DelegateCallbackTimer & initializeMs(TimerDelegate delegateFunction)
Initialise hardware timer in milliseconds, with static check.
Definition: Timer.h:215
TickType ticks() const
Definition: Timer.h:65
OsTimerApi::Clock Clock
Definition: Timer.h:29
bool isArmed() const
Definition: Timer.h:60
TimerCallback func
Definition: Timer.h:118
void arm(bool repeating)
Definition: SimpleTimer.h:92
void setCallback(Callback callback)
Set a callback function that is invoked on each change of the current allocation. ...
DelegateCallbackTimer & initializeMs(uint32_t milliseconds, TimerDelegate delegateFunction)
Initialise millisecond timer.
Definition: Timer.h:227
void arm(bool repeating)
Definition: Timer.h:97
Implements common system callback timer API.
Definition: SimpleTimer.h:32
void setInterval(TickType interval)
Definition: Timer.h:139
void setCallback(TimerDelegate delegateFunction)
Definition: Timer.h:80
Auto-delete callback timer class.
Definition: Timer.h:275
~AutoDeleteTimer()
Definition: Timer.h:281
TickType getInterval() const
Definition: SimpleTimer.h:87
bool isArmed() const
Definition: SimpleTimer.h:55
void expired()
Definition: Timer.h:285
TickType getInterval() const
Definition: Timer.h:88
Callback timer API class template.
Definition: CallbackTimer.h:30
Class template implementing an extended OS Timer with 64-bit microsecond times and delegate callback ...
Definition: Timer.h:26
DelegateCallbackTimer & initializeUs(uint32_t microseconds, TimerDelegate delegateFunction)
Initialise microsecond timer.
Definition: Timer.h:239
static constexpr TickType maxTicks()
Definition: SimpleTimer.h:50
DelegateCallbackTimer & initializeUs(TimerDelegate delegateFunction)
Initialise timer in microseconds, with static check.
Definition: Timer.h:203
void setCallback(TimerCallback callback, void *arg)
Definition: Timer.h:74
Callback timer class.
Definition: Timer.h:262
OsTimer64Api()
Definition: Timer.h:48
void setInterval(TickType interval)
Definition: SimpleTimer.h:82
~OsTimer64Api()
Definition: Timer.h:55
void(*)(void *arg) TimerCallback
Interrupt-compatible C callback function pointer.
Definition: CallbackTimer.h:23
OsTimerClock Clock
Definition: SimpleTimer.h:35
Class template adding delegate callback method support to the basic CallbackTimer template...
Definition: Timer.h:189