diff --git a/OneWireESP32.cpp b/OneWireESP32.cpp index 9f033d3..377ae7b 100644 --- a/OneWireESP32.cpp +++ b/OneWireESP32.cpp @@ -39,12 +39,16 @@ static rmt_symbol_word_t ow_bit1 = { const rmt_transmit_config_t owtxconf = { .loop_count = 0, .flags = { - .eot_level = 1 + .eot_level = 1, + .queue_nonblocking = true } }; const rmt_receive_config_t owrxconf = { .signal_range_min_ns = 1000, .signal_range_max_ns = (OW_RESET_PULSE + OW_RESET_WAIT) * 1000, + .flags = { + .en_partial_rx = false + } }; @@ -73,7 +77,16 @@ OneWire32::OneWire32(uint8_t pin){ .gpio_num = owpin, .clk_src = RMT_CLK_SRC_DEFAULT, .resolution_hz = 1000000, - .mem_block_symbols = MAX_BLOCKS + .mem_block_symbols = MAX_BLOCKS, + .intr_priority = 0, + .flags = { + .invert_in = 0, + .with_dma = 0, + .io_loop_back = 0, +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0) + .allow_pd = 0 +#endif + } }; if(rmt_new_rx_channel(&rxconf, &(owrx)) != ESP_OK) { @@ -86,9 +99,15 @@ OneWire32::OneWire32(uint8_t pin){ .resolution_hz = 1000000, .mem_block_symbols = MAX_BLOCKS, .trans_queue_depth = 4, + .intr_priority = 0, .flags = { + .invert_out = 0, + .with_dma = 0, .io_loop_back = 1, - .io_od_mode = 1 + .io_od_mode = 1, +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0) + .allow_pd = 0 +#endif } };