Reset stuck low detection

This commit is contained in:
Debian 2023-04-15 17:05:12 -06:00
parent 15f1bcaa90
commit 8927e41180
1 changed files with 3 additions and 1 deletions

View File

@ -59,8 +59,10 @@ bool common_hal_onewireio_onewire_reset(onewireio_onewire_obj_t *self) {
common_hal_mcu_delay_us(70);
bool value = common_hal_digitalio_digitalinout_get_value(&self->pin);
common_hal_mcu_delay_us(410);
// test if bus returned high (idle) and not stck at low
bool idle = common_hal_digitalio_digitalinout_get_value(&self->pin);
common_hal_mcu_enable_interrupts();
return value;
return value || !idle;
}
bool common_hal_onewireio_onewire_read_bit(onewireio_onewire_obj_t *self) {