esp32/esp32_rmt: Fix looping behaviour for RMT on ESP32-S3.

The previous code worked on ESP32 but not ESP32-S3.  All the IDF (v4.4.3)
examples call rmt_set_tx_loop_mode before rmt_write_items, so make that
change here.

Signed-off-by: Damien George <damien@micropython.org>
pull/10955/merge
IcedRooibos 2023-04-13 21:28:48 +08:00 zatwierdzone przez Damien George
rodzic 67fb0beddb
commit 7ea06a3e26
1 zmienionych plików z 2 dodań i 2 usunięć

Wyświetl plik

@ -326,13 +326,13 @@ 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));
}
check_esp_err(rmt_write_items(self->channel_id, self->items, num_items, false));
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));
}
check_esp_err(rmt_write_items(self->channel_id, self->items, num_items, false));
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(esp32_rmt_write_pulses_obj, 2, 3, esp32_rmt_write_pulses);