Copy of GPIOPin that is safe to use from ISRs (with no virtual functions)
void attach_interrupt(void(*func)(T *), T *arg, gpio::InterruptType type) const
virtual ISRInternalGPIOPin to_isr() const =0
This class simplifies creating components that periodically check a state.
void set_pin(InternalGPIOPin *pin)
float get_setup_priority() const override
void dump_config() override
PulseWidthSensorStore store_
Store data in a class that doesn't use multiple-inheritance (vtables in flash)
void setup(InternalGPIOPin *pin)
uint32_t get_pulse_width_us() const
volatile uint32_t last_rise_
float get_pulse_width_s() const
static void gpio_intr(PulseWidthSensorStore *arg)
uint32_t get_last_rise() const
volatile uint32_t last_width_
Base-class for all sensors.
const float DATA
For components that import data from directly connected sensors like DHT.
Providing packet encoding functions for exchanging data with a remote host.
uint32_t IRAM_ATTR HOT micros()