38 return "OsTimer64Api";
74 if(longIntervalCounterLimit != 0) {
82 this->callback.func = callback;
83 this->callback.arg =
arg;
88 delegate = delegateFunction;
89 this->callback.func =
nullptr;
97 if(longIntervalCounterLimit != 0) {
98 interval *= longIntervalCounterLimit;
105 this->repeating = repeating;
106 osTimer.
arm(longIntervalCounterLimit || repeating);
112 longIntervalCounter = 0;
125 bool repeating =
false;
129 uint16_t longIntervalCounterLimit = 0;
135 if(interval > maxTicks) {
137 uint32_t div = (interval / (maxTicks + 1)) + 1;
144 longIntervalCounterLimit = div;
146 longIntervalCounterLimit = 0;
148 longIntervalCounter = 0;
154 if(longIntervalCounterLimit != 0) {
155 longIntervalCounter++;
157 if(longIntervalCounter < longIntervalCounterLimit) {
164 longIntervalCounter = 0;
170 if(callback.func !=
nullptr) {
171 callback.func(callback.arg);
172 }
else if(delegate) {
176 static_cast<TimerClass*
>(
this)->expired();
185 using typename TimerApi::TickType;
186 using typename TimerApi::TimeType;
199 this->
template setIntervalUs<microseconds>();
211 this->
template setIntervalMs<milliseconds>();
223 this->setIntervalMs(milliseconds);
235 this->setIntervalUs(microseconds);
247 TimerApi::setCallback(delegateFunction);
248 this->callbackSet =
bool(delegateFunction);
#define __forceinline
Definition: sming_attr.h:13
uint64_t TickType
Definition: Timer.h:33
static constexpr const char * typeName()
Definition: Timer.h:36
void disarm()
Definition: SimpleTimer.h:95
void expired()
Definition: Timer.h:260
static constexpr TickType minTicks()
Definition: Timer.h:41
uint64_t TimeType
Definition: Timer.h:34
void disarm()
Definition: Timer.h:109
void(* TimerCallback)(void *arg)
Interrupt-compatible C callback function pointer.
Definition: CallbackTimer.h:23
void setCallback(TimerDelegate delegateFunction)
Set timer trigger function using Delegate callback method.
Definition: Timer.h:243
void * arg
Definition: Timer.h:122
void setCallback(TimerCallback callback, void *arg)
Definition: SimpleTimer.h:75
Clock implementation for Hardware Timer 2.
Definition: Clocks.h:55
static constexpr MaxTicks maxTicks()
Definition: NanoTime.h:156
TickType ticks() const
Definition: SimpleTimer.h:60
void longTick()
Definition: Timer.h:152
Callback timer class template.
Definition: CallbackTimer.h:70
static constexpr TickType maxTicks()
Definition: Timer.h:46
DelegateCallbackTimer & initializeMs(TimerDelegate delegateFunction)
Initialise hardware timer in milliseconds, with static check.
Definition: Timer.h:208
TickType ticks() const
Definition: Timer.h:71
#define SMING_DEPRECATED
Definition: sming_attr.h:30
bool isArmed() const
Definition: Timer.h:66
TimerCallback func
Definition: Timer.h:121
void arm(bool repeating)
Definition: SimpleTimer.h:90
DelegateCallbackTimer & initializeMs(uint32_t milliseconds, TimerDelegate delegateFunction)
Initialise millisecond timer.
Definition: Timer.h:220
void arm(bool repeating)
Definition: Timer.h:103
Implements common system callback timer API.
Definition: SimpleTimer.h:32
void setInterval(TickType interval)
Definition: Timer.h:132
void setCallback(TimerDelegate delegateFunction)
Definition: Timer.h:86
Auto-delete callback timer class.
Definition: Timer.h:268
~AutoDeleteTimer()
Definition: Timer.h:274
TickType getInterval() const
Definition: SimpleTimer.h:85
bool isArmed() const
Definition: SimpleTimer.h:55
void expired()
Definition: Timer.h:278
TickType getInterval() const
Definition: Timer.h:94
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:29
DelegateCallbackTimer & initializeUs(uint32_t microseconds, TimerDelegate delegateFunction)
Initialise microsecond timer.
Definition: Timer.h:232
static constexpr TickType maxTicks()
Definition: SimpleTimer.h:50
std::function< void()> TimerDelegateStdFunction
Definition: Timer.h:24
DelegateCallbackTimer & initializeUs(TimerDelegate delegateFunction)
Initialise timer in microseconds, with static check.
Definition: Timer.h:196
void setCallback(TimerCallback callback, void *arg)
Definition: Timer.h:80
Callback timer class.
Definition: Timer.h:255
OsTimer64Api()
Definition: Timer.h:51
Timer2Clock Clock
Definition: SimpleTimer.h:35
void setInterval(TickType interval)
Definition: SimpleTimer.h:80
~OsTimer64Api()
Definition: Timer.h:61
Class template adding delegate callback method support to the basic CallbackTimer template...
Definition: Timer.h:182