From f1890bde2713484bd11f05579f1e8f3d49693ea7 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 18 Aug 2019 10:51:16 +0200 Subject: [PATCH] Multiprotocol broken - Fixes #6633 --- radio/src/pulses/multi.cpp | 2 +- radio/src/targets/horus/extmodule_driver.cpp | 2 +- radio/src/targets/taranis/extmodule_driver.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/src/pulses/multi.cpp b/radio/src/pulses/multi.cpp index cc5ead610..babfc4bb1 100644 --- a/radio/src/pulses/multi.cpp +++ b/radio/src/pulses/multi.cpp @@ -102,7 +102,7 @@ void setupPulsesMultimodule() // Every 1000 cycles (=9s) send a config packet that configures the multimodule (inversion, telemetry type) counter++; - if (counter % 1000== 500) { + if (counter % 1000 == 500) { sendSetupFrame(); } else if (counter % 1000 == 0 && g_model.moduleData[EXTERNAL_MODULE].failsafeMode != FAILSAFE_NOT_SET && g_model.moduleData[EXTERNAL_MODULE].failsafeMode != FAILSAFE_RECEIVER) { diff --git a/radio/src/targets/horus/extmodule_driver.cpp b/radio/src/targets/horus/extmodule_driver.cpp index 99c5f811f..fe3d2cb63 100644 --- a/radio/src/targets/horus/extmodule_driver.cpp +++ b/radio/src/targets/horus/extmodule_driver.cpp @@ -176,7 +176,7 @@ void extmoduleSerialStart(uint32_t /*baudrate*/, uint32_t period_half_us, bool i EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0; #endif - EXTMODULE_TIMER->ARR = 45000; + EXTMODULE_TIMER->ARR = period_half_us; EXTMODULE_TIMER->CCR2 = 40000; // The first frame will be sent in 20ms EXTMODULE_TIMER->SR &= ~TIM_SR_CC2IF; // Clear flag EXTMODULE_TIMER->DIER |= TIM_DIER_UDE | TIM_DIER_CC2IE; diff --git a/radio/src/targets/taranis/extmodule_driver.cpp b/radio/src/targets/taranis/extmodule_driver.cpp index 2311b289d..3ab23f3e9 100644 --- a/radio/src/targets/taranis/extmodule_driver.cpp +++ b/radio/src/targets/taranis/extmodule_driver.cpp @@ -104,7 +104,7 @@ void extmoduleSerialStart(uint32_t /*baudrate*/, uint32_t period_half_us, bool i EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0; // Force O/P high EXTMODULE_TIMER->EGR = 1; // Restart EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0; - EXTMODULE_TIMER->ARR = 45000; + EXTMODULE_TIMER->ARR = period_half_us; EXTMODULE_TIMER->CCR2 = 40000; // The first frame will be sent in 20ms EXTMODULE_TIMER->SR &= ~TIM_SR_CC2IF; // Clear flag EXTMODULE_TIMER->DIER |= TIM_DIER_UDE | TIM_DIER_CC2IE; @@ -279,7 +279,7 @@ void extmoduleSendNextFrame() break; #endif -#if defined(DSM2) +#if defined(SBUS) || defined(DSM2) || defined(MULTIMODULE) case PROTOCOL_CHANNELS_SBUS: EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | (GET_SBUS_POLARITY(EXTERNAL_MODULE) ? 0 : EXTMODULE_TIMER_OUTPUT_POLARITY); // reverse polarity for Sbus if needed // no break