From 094b52b8ad13be1e919354b188ad3dbe94fc4bf5 Mon Sep 17 00:00:00 2001 From: Mark Blakeney Date: Mon, 20 Nov 2023 15:46:08 +1000 Subject: [PATCH] esp32/esp32_rmt: Fix RMT looping. Commit 7ea06a3e2638e0fb82240c0b88c9cd1ecaf942f5 moved the `rmt_write_items()` call to fix RMT looping for ESP32-S3, but broke it for the other ESP32s. This commit conditionally compiles the location of that call. Signed-off-by: Mark Blakeney --- ports/esp32/esp32_rmt.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ports/esp32/esp32_rmt.c b/ports/esp32/esp32_rmt.c index 5d53018f4b..77a31ebc0f 100644 --- a/ports/esp32/esp32_rmt.c +++ b/ports/esp32/esp32_rmt.c @@ -323,12 +323,18 @@ STATIC mp_obj_t esp32_rmt_write_pulses(size_t n_args, const mp_obj_t *args) { check_esp_err(rmt_wait_tx_done(self->channel_id, portMAX_DELAY)); } + #if !CONFIG_IDF_TARGET_ESP32S3 + check_esp_err(rmt_write_items(self->channel_id, self->items, num_items, false)); + #endif + if (self->loop_en) { check_esp_err(rmt_set_tx_intr_en(self->channel_id, false)); check_esp_err(rmt_set_tx_loop_mode(self->channel_id, true)); } + #if CONFIG_IDF_TARGET_ESP32S3 check_esp_err(rmt_write_items(self->channel_id, self->items, num_items, false)); + #endif return mp_const_none; }