1#ifndef SENSESP_SENSORS_DIGITAL_PCNT_INPUT_H_
2#define SENSESP_SENSORS_DIGITAL_PCNT_INPUT_H_
4#include <elapsedMillis.h>
9#if ESP_ARDUINO_VERSION_MAJOR < 3
11 "The Pulse Counter API is only available in ESP32 Arduino Core 3.0.0 and later"
13#include "driver/pulse_cnt.h"
38 DigitalInputPcntCounter(uint8_t pin,
int pin_mode,
int interrupt_type,
39 unsigned int read_delay, String config_path =
"");
41 ~DigitalInputPcntCounter();
43 virtual bool to_json(JsonObject& root)
override;
44 virtual bool from_json(
const JsonObject& config)
override;
47 unsigned int read_delay_;
50 esp_err_t configurePcnt(
int interrupt_type);
51 pcnt_unit_handle_t pcnt_unit_ =
nullptr;
52 pcnt_channel_handle_t pcnt_channel_ =
nullptr;
57const String
ConfigSchema(
const DigitalInputPcntCounter& obj);
Sensor template class for any sensor producing actual values.
const String ConfigSchema(const SmartSwitchController &obj)
bool ConfigRequiresRestart(const HTTPServer &obj)