9#if defined(USE_ESP32) && !defined(USE_ESP32_VARIANT_ESP32C3)
10#include <driver/pcnt.h>
15namespace pulse_counter {
77 void setup()
override;
BedjetMode mode
BedJet operating mode.
Copy of GPIOPin that is safe to use from ISRs (with no virtual functions)
This class simplifies creating components that periodically check a state.
void set_pin(InternalGPIOPin *pin)
sensor::Sensor * total_sensor_
void setup() override
Unit of measurement is "pulses/min".
void set_filter_us(uint32_t filter)
void set_total_pulses(uint32_t pulses)
float get_setup_priority() const override
PulseCounterSensor(bool hw_pcnt=false)
void set_total_sensor(sensor::Sensor *total_sensor)
void dump_config() override
PulseCounterStorageBase & storage_
void set_falling_edge_mode(PulseCounterCountMode mode)
void set_rising_edge_mode(PulseCounterCountMode mode)
Base-class for all sensors.
@ PULSE_COUNTER_DECREMENT
@ PULSE_COUNTER_INCREMENT
PulseCounterStorageBase * get_storage(bool hw_pcnt)
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.
bool pulse_counter_setup(InternalGPIOPin *pin) override
volatile pulse_counter_t counter
volatile uint32_t last_pulse
static void gpio_intr(BasicPulseCounterStorage *arg)
pulse_counter_t read_raw_value() override
ISRInternalGPIOPin isr_pin
bool pulse_counter_setup(InternalGPIOPin *pin) override
pcnt_channel_t pcnt_channel
pulse_counter_t read_raw_value() override
virtual pulse_counter_t read_raw_value()=0
virtual bool pulse_counter_setup(InternalGPIOPin *pin)=0
PulseCounterCountMode falling_edge_mode
pulse_counter_t last_value
PulseCounterCountMode rising_edge_mode