From f2a357c2aa2e2fadbaed615cb988c61954b11d84 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 10 Jan 2026 08:20:43 +0100 Subject: [PATCH] fix: EM when selecting External RF mode PPM (#6909) Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com> --- .../common/arm/stm32/module_timer_driver.cpp | 13 +++++++++++++ radio/src/targets/simu/module_drivers.cpp | 3 +++ 2 files changed, 16 insertions(+) diff --git a/radio/src/targets/common/arm/stm32/module_timer_driver.cpp b/radio/src/targets/common/arm/stm32/module_timer_driver.cpp index 4dce6bc4d..6c3aad84a 100644 --- a/radio/src/targets/common/arm/stm32/module_timer_driver.cpp +++ b/radio/src/targets/common/arm/stm32/module_timer_driver.cpp @@ -58,8 +58,21 @@ static void module_timer_send(void* ctx, const etx_timer_config_t* cfg, stm32_pulse_start_dma_req(timer, pulses, length, ocmode, ocval); } +static bool module_timer_tx_complete(void* ctx) +{ + auto tim = (const stm32_pulse_timer_t*)ctx; + + if (LL_DMA_IsEnabledStream(tim->DMAx, tim->DMA_Stream)) + { + return false; + } + + return true; +} + const etx_timer_driver_t STM32ModuleTimerDriver = { .init = module_timer_init, .deinit = module_timer_deinit, .send = module_timer_send, + .txCompleted = module_timer_tx_complete }; diff --git a/radio/src/targets/simu/module_drivers.cpp b/radio/src/targets/simu/module_drivers.cpp index f75add52b..69dd01060 100644 --- a/radio/src/targets/simu/module_drivers.cpp +++ b/radio/src/targets/simu/module_drivers.cpp @@ -122,10 +122,13 @@ static void module_timer_send(void* ctx, const etx_timer_config_t* cfg, const void* pulses, uint16_t length) {} +static bool module_timer_tx_completed(void* ctx) { return true; } + const etx_timer_driver_t _fakeTimerDriver = { .init = module_timer_init, .deinit = module_timer_deinit, .send = module_timer_send, + .txCompleted = module_timer_tx_completed, }; #endif