37 template <hw_timer_clkdiv_t clkdiv, HardwareTimerMode mode>
52 return Clock::template TimeConst<NanoTime::Microseconds, MIN_HW_TIMER1_INTERVAL_US>::ticks();
67 assert(state == eTS_CallbackNotSet);
77 if(callback ==
nullptr) {
80 assert(state <= eTS_Disarmed);
82 reinterpret_cast<hw_timer_callback_t>(callback), arg);
89 Timer1Api::interval = interval;
99 return state >= eTS_Armed;
104 State newState = repeating ? eTS_ArmedAutoLoad : eTS_Armed;
105 if(state != newState) {
116 state = eTS_Disarmed;
124 if(state > eTS_CallbackNotSet) {
126 state = eTS_CallbackNotSet;
137 static uint8_t state;
144 template <hw_timer_clkdiv_t clkdiv = TIMER_CLKDIV_16, HardwareTimerMode mode = eHWT_NonMaskable>
static void setInterval(TickType interval)
Definition: HardwareTimer.h:87
static bool isArmed()
Definition: HardwareTimer.h:97
static void arm(bool repeating)
Definition: HardwareTimer.h:102
void hw_timer1_write(uint32_t ticks)
Set the timer interval.
Definition: hw_timer.h:104
#define __forceinline
Definition: sming_attr.h:13
uint32_t TimeType
Definition: HardwareTimer.h:43
static void disarm()
Definition: HardwareTimer.h:112
void hw_timer1_disable(void)
Disable the timer.
Definition: hw_timer.h:112
void(* TimerCallback)(void *arg)
Interrupt-compatible C callback function pointer.
Definition: CallbackTimer.h:23
Definition: HardwareTimer.h:29
Timer1Api()
Definition: HardwareTimer.h:65
static constexpr MaxTicks maxTicks()
Definition: NanoTime.h:156
Class template for Timer1 API.
Definition: HardwareTimer.h:38
static TickType ticks()
Definition: HardwareTimer.h:60
void hw_timer1_enable(hw_timer_clkdiv_t div, hw_timer_intr_type_t intr_type, bool auto_load)
Enable the timer.
Definition: hw_timer.h:85
Callback timer class template.
Definition: CallbackTimer.h:70
Definition: hw_timer.h:62
static constexpr const char * typeName()
Definition: HardwareTimer.h:45
~Timer1Api()
Definition: HardwareTimer.h:70
static constexpr TickType minTicks()
Definition: HardwareTimer.h:50
#define SMING_DEPRECATED
Definition: sming_attr.h:30
static TickType getInterval()
Definition: HardwareTimer.h:92
static uint32_t ticks()
Definition: Clocks.h:44
HardwareTimerMode
Hardware Timer interrupt mode.
Definition: HardwareTimer.h:28
void hw_timer1_attach_interrupt(hw_timer_source_type_t source_type, hw_timer_callback_t callback, void *arg)
Attach an interrupt for the timer.
void hw_timer1_detach_interrupt(void)
Detach interrupt from the timer.
Definition: hw_timer.h:121
uint32_t TickType
Definition: HardwareTimer.h:42
Definition: hw_timer.h:67
Callback timer API class template.
Definition: CallbackTimer.h:30
static void setCallback(TimerCallback callback, void *arg)
Definition: HardwareTimer.h:75
Clock implementation for Hardware Timer 1.
Definition: Clocks.h:29
static constexpr TickType maxTicks()
Definition: HardwareTimer.h:55
Definition: hw_timer.h:68
Definition: HardwareTimer.h:30