pulse_counter_ulp: Remove unnecessary configuration variables

This commit is contained in:
brisk 2024-07-04 23:04:01 +09:30
parent 9c70733028
commit 5f98bf4808
2 changed files with 16 additions and 59 deletions

View file

@ -1,12 +1,10 @@
#include "pulse_counter_ulp_sensor.h"
#include "esphome/core/log.h"
#ifdef CONF_USE_ULP
#include "esp32/ulp.h"
#include "ulp_main.h"
#include "soc/rtc_periph.h"
#include "driver/rtc_io.h"
#include <esp_sleep.h>
#endif
namespace esphome {
namespace pulse_counter {
@ -142,8 +140,6 @@ pulse_counter_t HwPulseCounterStorage::read_raw_value() {
/* === ULP === */
#ifdef CONF_USE_ULP
extern const uint8_t ulp_main_bin_start[] asm("_binary_ulp_main_bin_start");
extern const uint8_t ulp_main_bin_end[] asm("_binary_ulp_main_bin_end");
@ -239,8 +235,6 @@ pulse_counter_t UlpPulseCounterStorage::read_raw_value() {
return count;
}
#endif
/* === END ULP ===*/
#endif

View file

@ -24,8 +24,6 @@ from esphome.const import (
)
from esphome.core import CORE
CONF_USE_PCNT = "use_pcnt"
CONF_USE_ULP = "use_ulp"
CONF_STORAGE_ID = "storage"
pulse_counter_ns = cg.esphome_ns.namespace("pulse_counter")
@ -47,26 +45,6 @@ SetTotalPulsesAction = pulse_counter_ns.class_(
)
def validate_internal_filter(value):
use_pcnt = value.get(CONF_USE_PCNT)
use_ulp = value.get(CONF_USE_ULP)
if CORE.is_esp8266 and (use_pcnt or use_ulp):
raise cv.Invalid(
"Using hardware pulse counters is only available on ESP32",
[CONF_USE_PCNT],
)
if CORE.is_esp32 and use_pcnt:
if value.get(CONF_INTERNAL_FILTER).total_microseconds > 13:
raise cv.Invalid(
"Maximum internal filter value when using ESP32 hardware PCNT is 13us",
[CONF_INTERNAL_FILTER],
)
return value
def validate_pulse_counter_pin(value):
value = pins.internal_gpio_input_pin_schema(value)
if CORE.is_esp8266 and value[CONF_NUMBER] >= 16:
@ -113,8 +91,6 @@ CONFIG_SCHEMA = cv.All(
),
validate_count_mode,
),
cv.SplitDefault(CONF_USE_PCNT, esp32=True): cv.boolean,
cv.Optional(CONF_USE_ULP): cv.boolean,
cv.Optional(
CONF_INTERNAL_FILTER, default="13us"
): cv.positive_time_period_microseconds,
@ -131,39 +107,26 @@ CONFIG_SCHEMA = cv.All(
},
)
.extend(cv.polling_component_schema("60s")),
validate_internal_filter,
)
async def to_code(config):
if config.get(CONF_USE_ULP):
cg.add_define("CONF_USE_ULP", True)
storage = cg.Pvariable(
config[CONF_STORAGE_ID],
cg.RawExpression("new pulse_counter::UlpPulseCounterStorage()"),
)
esp32.add_extra_build_file(
"src/CMakeLists.txt",
os.path.join(os.path.dirname(__file__), "CMakeLists.txt"),
)
# FIXME These files don't get cleared when the config changes, necessitating deleting .esphome
esp32.add_extra_build_file(
"ulp/pulse_cnt.S",
os.path.join(os.path.dirname(__file__), "ulp/pulse_cnt.S"),
)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_ENABLED", True)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_TYPE_FSM", True)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_RESERVE_MEM", 1024)
elif config.get(CONF_USE_PCNT):
storage = cg.Pvariable(
config[CONF_STORAGE_ID],
cg.RawExpression("new pulse_counter::HwPulseCounterStorage()"),
)
else:
storage = cg.Pvariable(
config[CONF_STORAGE_ID],
cg.RawExpression("new pulse_counter::BasicPulseCounterStorage()"),
)
storage = cg.Pvariable(
config[CONF_STORAGE_ID],
cg.RawExpression("new pulse_counter::UlpPulseCounterStorage()"),
)
esp32.add_extra_build_file(
"src/CMakeLists.txt",
os.path.join(os.path.dirname(__file__), "CMakeLists.txt"),
)
# FIXME These files don't get cleared when the config changes, necessitating deleting .esphome
esp32.add_extra_build_file(
"ulp/pulse_cnt.S",
os.path.join(os.path.dirname(__file__), "ulp/pulse_cnt.S"),
)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_ENABLED", True)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_TYPE_FSM", True)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_RESERVE_MEM", 1024)
var = await sensor.new_sensor(config, storage)
await cg.register_component(var, config)