diff options
author | Sam Guyer <sam.guyer@gmail.com> | 2020-12-04 03:33:35 +0300 |
---|---|---|
committer | Sam Guyer <sam.guyer@gmail.com> | 2020-12-04 03:33:35 +0300 |
commit | a62c7451d5603c680289c10930b19634730dcfc0 (patch) | |
tree | 8c40b7af31a85cea1eabb2626c45c7f3fbf4eec6 | |
parent | 2cd4211997adae98caa0ba62c14cce47ff3988f9 (diff) |
Experimental change: inline rmt library calls that need to be in IRAM during flash operations
-rw-r--r-- | src/platforms/esp/32/clockless_rmt_esp32.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/platforms/esp/32/clockless_rmt_esp32.cpp b/src/platforms/esp/32/clockless_rmt_esp32.cpp index 2dd94b92..e4b6840c 100644 --- a/src/platforms/esp/32/clockless_rmt_esp32.cpp +++ b/src/platforms/esp/32/clockless_rmt_esp32.cpp @@ -252,7 +252,8 @@ void ESP32RMTController::startOnChannel(int channel) // Setting this RMT flag is what actually kicks off the peripheral void ESP32RMTController::tx_start() { - rmt_tx_start(mRMT_channel, true); + //rmt_tx_start(mRMT_channel, true); + RMT.conf_ch[mRMT_channel].conf1.tx_start = 1; mLastFill = __clock_cycles(); } @@ -271,7 +272,9 @@ void ESP32RMTController::doneOnChannel(rmt_channel_t channel, void * arg) gpio_matrix_out(pController->mPin, 0x100, 0, 0); // -- Turn off the interrupts - rmt_set_tx_intr_en(channel, false); + // rmt_set_tx_intr_en(channel, false); + RMT.int_ena.val &= ~(1 << (mRMT_channel * 3)); + RMT.int_ena.val |= (enable << (mRMT_channel * 3)); gOnChannel[channel] = NULL; gNumDone++; |