diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index d76b27439..d785afdca 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -27,10 +27,6 @@ ModuleSettings moduleSettings[NUM_MODULES]; ModulePulsesData modulePulsesData[NUM_MODULES] __DMA; TrainerPulsesData trainerPulsesData __DMA; -#if defined(CROSSFIRE) -uint8_t createCrossfireChannelsFrame(uint8_t * frame, int16_t * pulses); -#endif - uint8_t getRequiredProtocol(uint8_t module) { uint8_t required_protocol; @@ -39,27 +35,26 @@ uint8_t getRequiredProtocol(uint8_t module) case MODULE_TYPE_PPM: required_protocol = PROTOCOL_CHANNELS_PPM; break; + case MODULE_TYPE_XJT: required_protocol = PROTOCOL_CHANNELS_PXX; break; + case MODULE_TYPE_XJT2: - required_protocol = PROTOCOL_CHANNELS_PXX2; - break; case MODULE_TYPE_R9M: -#if defined(PCBXLITE) - required_protocol = PROTOCOL_CHANNELS_PXX; -#else required_protocol = PROTOCOL_CHANNELS_PXX2; -#endif break; + case MODULE_TYPE_SBUS: required_protocol = PROTOCOL_CHANNELS_SBUS; break; + #if defined(MULTIMODULE) case MODULE_TYPE_MULTIMODULE: required_protocol = PROTOCOL_CHANNELS_MULTIMODULE; break; #endif + #if defined(DSM2) case MODULE_TYPE_DSM2: required_protocol = limit(PROTOCOL_CHANNELS_DSM2_LP45, PROTOCOL_CHANNELS_DSM2_LP45+g_model.moduleData[module].rfProtocol, PROTOCOL_CHANNELS_DSM2_DSMX); @@ -79,11 +74,13 @@ uint8_t getRequiredProtocol(uint8_t module) } break; #endif + #if defined(CROSSFIRE) case MODULE_TYPE_CROSSFIRE: required_protocol = PROTOCOL_CHANNELS_CROSSFIRE; break; #endif + default: required_protocol = PROTOCOL_CHANNELS_NONE; break; @@ -120,14 +117,6 @@ void setupPulsesPXX(uint8_t module) void setupPulsesPXX2(uint8_t module) { modulePulsesData[module].pxx2.setupFrame(module); - -#if 0 - // here we have to wait that telemetryInit() is called, hence this test - if (telemetryProtocol == PROTOCOL_TELEMETRY_PXX2) { - modulePulsesData[module].pxx2.setupFrame(module); - sportSendBuffer(modulePulsesData[module].pxx2.getData(), modulePulsesData[module].pxx2.getSize()); - } -#endif } void disablePulses(uint8_t module, uint8_t protocol) diff --git a/radio/src/targets/taranis/extmodule_driver.cpp b/radio/src/targets/taranis/extmodule_driver.cpp index bc405cc49..c7aa5fcce 100644 --- a/radio/src/targets/taranis/extmodule_driver.cpp +++ b/radio/src/targets/taranis/extmodule_driver.cpp @@ -273,9 +273,14 @@ void extmoduleSendNextFrame() EXTMODULE_TIMER_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].dsm2.ptr - modulePulsesData[EXTERNAL_MODULE].dsm2.pulses; EXTMODULE_TIMER_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA } +#if defined(CROSSFIRE) else if (moduleSettings[EXTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_CROSSFIRE) { sportSendBuffer(modulePulsesData[EXTERNAL_MODULE].crossfire.pulses, modulePulsesData[EXTERNAL_MODULE].crossfire.length); } +#endif + else if (moduleSettings[EXTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX2) { + sportSendBuffer(modulePulsesData[EXTERNAL_MODULE].pxx2.getData(), modulePulsesData[EXTERNAL_MODULE].pxx2.getSize()); + } else { EXTMODULE_TIMER->DIER |= TIM_DIER_CC2IE; }