Hardware timers

The ESP8266 has one of these, HardwareTimer, which can be programmed to trigger when a pre-programmed interval has elapsed. The callback handler is executed in an interrupt context so is restricted on what it can do.

The timer is appropriate where accurate and short timing is required.

The API for hardware (and Software timer queues timers) is identical, implemented using a CallbackTimer class template for best performance.

group hardware_timer

Hardware callback timer.

Typedefs

using HardwareTimer1 = CallbackTimer<Timer1Api<clkdiv, mode>>

Hardware Timer class template with selectable divider and interrupt mode.

using HardwareTimer = HardwareTimer1<>

Default hardware Timer class.

typedef HardwareTimer Hardware_Timer

Enums

enum HardwareTimerMode

Hardware Timer interrupt mode.

Values:

eHWT_Maskable
eHWT_NonMaskable

Variables

uint8_t state
uint32_t interval
template <hw_timer_clkdiv_t clkdiv, HardwareTimerMode mode>
class Timer1Api : public CallbackTimerApi<Timer1Api<clkdiv, mode>>
#include <HardwareTimer.h>

Class template for Timer1 API.

Note
Provides low-level interface for timer access

Public Types

template<>
using Clock = Timer1Clock<clkdiv>
template<>
using TickType = uint32_t
template<>
using TimeType = uint32_t

Public Functions

Timer1Api()
~Timer1Api()
String name() const
String toString() const
operator String() const

Public Static Functions

static constexpr const char *typeName()
static constexpr TickType minTicks()
static constexpr TickType maxTicks()
static TickType ticks()
static void setCallback(TimerCallback callback, void *arg)
static void setInterval(TickType interval)
static TickType getInterval()
static bool isArmed()
static void arm(bool repeating)
static void disarm()