8static const char *
const TAG =
"gpio.one_wire";
21 ESP_LOGCONFIG(TAG,
"GPIO 1-wire bus:");
22 LOG_PIN(
" Pin: ", this->
t_pin_);
32 uint8_t retries = 125;
51 while (
micros() - start < 300) {
76 uint32_t delay0 = bit ? 6 : 60;
77 uint32_t delay1 = bit ? 64 : 10;
111 for (uint8_t i = 0; i < 8; i++) {
118 for (uint8_t i = 0; i < 64; i++) {
126 for (uint8_t i = 0; i < 8; i++)
127 ret |= (uint8_t(this->
read_bit_()) << i);
134 for (uint8_t i = 0; i < 8; i++) {
135 ret |= (uint64_t(this->
read_bit_()) << i);
151 uint8_t last_zero = 0;
152 uint64_t bit_mask = 1;
156 for (
int bit_number = 1; bit_number <= 64; bit_number++, bit_mask <<= 1) {
162 if (id_bit && cmp_id_bit) {
169 if (id_bit != cmp_id_bit) {
175 branch = (
address & bit_mask) > 0;
181 last_zero = bit_number;
virtual void pin_mode(gpio::Flags flags)=0
void digital_write(bool value)
void pin_mode(gpio::Flags flags)
Helper class to disable interrupts.
uint64_t search_int() override
void reset_search() override
uint8_t last_discrepancy_
void dump_config() override
void write_bit_(bool bit)
void write64(uint64_t val) override
uint64_t read64() override
void write8(uint8_t val) override
void dump_devices_(const char *tag)
log the found devices
void search()
Search for 1-Wire devices on the bus.
Providing packet encoding functions for exchanging data with a remote host.
void IRAM_ATTR HOT delayMicroseconds(uint32_t us)
uint32_t IRAM_ATTR HOT micros()