8static const char *
const TAG =
"gpio.one_wire";
11 ESP_LOGCONFIG(TAG,
"Setting up 1-wire bus...");
22 ESP_LOGCONFIG(TAG,
"GPIO 1-wire bus:");
23 LOG_PIN(
" Pin: ", this->
t_pin_);
33 uint8_t retries = 125;
52 while (
micros() - start < 300) {
77 uint32_t delay0 = bit ? 6 : 60;
78 uint32_t delay1 = bit ? 64 : 10;
112 for (uint8_t i = 0; i < 8; i++) {
119 for (uint8_t i = 0; i < 64; i++) {
127 for (uint8_t i = 0; i < 8; i++)
128 ret |= (uint8_t(this->
read_bit_()) << i);
135 for (uint8_t i = 0; i < 8; i++) {
136 ret |= (uint64_t(this->
read_bit_()) << i);
152 uint8_t last_zero = 0;
153 uint64_t bit_mask = 1;
157 for (
int bit_number = 1; bit_number <= 64; bit_number++, bit_mask <<= 1) {
163 if (id_bit && cmp_id_bit) {
170 if (id_bit != cmp_id_bit) {
176 branch = (
address & bit_mask) > 0;
182 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()