From f5c6c55ac55da9d79304f6bcba7dc47140048b6e Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 20 Mar 2019 17:36:29 +0100 Subject: [PATCH] Introduced definition HARDWARE_INTERNAL_MODULE to avoid testing the brand etc. --- radio/src/gui/gui_common_arm.cpp | 2 +- radio/src/pulses/pulses.cpp | 7 +++++-- radio/src/targets/horus/hal.h | 1 + radio/src/targets/horus/telemetry_driver.cpp | 3 +-- radio/src/targets/sky9x/CMakeLists.txt | 1 + radio/src/targets/sky9x/pulses_driver.cpp | 7 ++++--- radio/src/targets/taranis/hal.h | 1 + radio/src/tasks.cpp | 2 +- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/radio/src/gui/gui_common_arm.cpp b/radio/src/gui/gui_common_arm.cpp index 84ac9bde0..43323fd4a 100644 --- a/radio/src/gui/gui_common_arm.cpp +++ b/radio/src/gui/gui_common_arm.cpp @@ -574,7 +574,7 @@ bool isExternalModuleAvailable(int module) return false; } #endif -#if defined(PCBTARANIS) || defined(PCBHORUS) +#if defined(HARDWARE_INTERNAL_MODULE) if (module == MODULE_TYPE_R9M && g_model.moduleData[INTERNAL_MODULE].type == MODULE_TYPE_XJT) { return false; } diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 3d5251fd3..c63da93aa 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -31,14 +31,17 @@ TrainerPulsesData trainerPulsesData __DMA; uint8_t getModuleType(uint8_t module) { uint8_t type = g_model.moduleData[module].type; -#if defined(PCBTARANIS) || defined(PCBHORUS) + +#if defined(HARDWARE_INTERNAL_MODULE) if (module == INTERNAL_MODULE && isInternalModuleAvailable(type)) { return type; } #endif + if (module == EXTERNAL_MODULE && isExternalModuleAvailable(type)) { return type; } + return MODULE_TYPE_NONE; } @@ -334,7 +337,7 @@ void setupPulsesExternalModule(uint8_t protocol) void setupPulses(uint8_t module, uint8_t protocol) { switch (module) { -#if defined(PCBTARANIS) || defined(PCBHORUS) +#if defined(HARDWARE_INTERNAL_MODULE) case INTERNAL_MODULE: setupPulsesInternalModule(protocol); break; diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 1613ed2c0..1336e5f13 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -510,6 +510,7 @@ #endif // Internal Module +#define HARDWARE_INTERNAL_MODULE #define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA2) #define INTMODULE_PWR_GPIO GPIOA #define INTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PA.08 diff --git a/radio/src/targets/horus/telemetry_driver.cpp b/radio/src/targets/horus/telemetry_driver.cpp index dfc7d93c0..21e9f6c5a 100644 --- a/radio/src/targets/horus/telemetry_driver.cpp +++ b/radio/src/targets/horus/telemetry_driver.cpp @@ -176,8 +176,7 @@ extern "C" void TELEMETRY_DMA_TX_IRQHandler(void) DMA_ClearITPendingBit(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC); TELEMETRY_USART->CR1 |= USART_CR1_TCIE; if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) { - outputTelemetryBuffer.size = 0; - outputTelemetryBuffer.trigger = 0x7E; + outputTelemetryBuffer.reset(); } } } diff --git a/radio/src/targets/sky9x/CMakeLists.txt b/radio/src/targets/sky9x/CMakeLists.txt index 2da8e1305..176293564 100644 --- a/radio/src/targets/sky9x/CMakeLists.txt +++ b/radio/src/targets/sky9x/CMakeLists.txt @@ -9,6 +9,7 @@ set(NAVIGATION_TYPE 9x) set(TARGET_DIR sky9x) set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} 9x_bitmaps) set(PPM_LIMITS_SYMETRICAL YES) +set(PXX1 YES) if(PCB STREQUAL 9XRPRO) add_definitions(-Dat91sam3s8 -DREVX) diff --git a/radio/src/targets/sky9x/pulses_driver.cpp b/radio/src/targets/sky9x/pulses_driver.cpp index 426c86eec..a1c495e46 100644 --- a/radio/src/targets/sky9x/pulses_driver.cpp +++ b/radio/src/targets/sky9x/pulses_driver.cpp @@ -279,7 +279,7 @@ extern "C" void PWM_IRQHandler(void) if (reason & PWM_ISR1_CHID3) { // Use the current protocol, don't switch until set_up_pulses switch (moduleSettings[EXTERNAL_MODULE].protocol) { - case PROTOCOL_CHANNELS_PXX: + case PROTOCOL_CHANNELS_PXX1_PULSES: // Alternate periods of 6.5mS and 2.5 mS period = pwmptr->PWM_CH_NUM[3].PWM_CPDR; if (period == 2500 * 2) { @@ -365,11 +365,12 @@ extern "C" void PWM_IRQHandler(void) #if !defined(REVA) if (reason & PWM_ISR1_CHID1) { - pwmptr->PWM_CH_NUM[1].PWM_CPDRUPD = *modulePulsesData[EXTRA_MODULE].ppm.ptr++; + // TODO EXTRA_MODULE will be broken + /*pwmptr->PWM_CH_NUM[1].PWM_CPDRUPD = *modulePulsesData[EXTRA_MODULE].ppm.ptr++; if (*modulePulsesData[EXTRA_MODULE].ppm.ptr == 0) { setupPulses(EXTRA_MODULE); setExtraModulePolarity(); - } + }*/ } #endif } diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 4cc860d7d..0cab9aab7 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -669,6 +669,7 @@ #endif // Internal Module +#define HARDWARE_INTERNAL_MODULE #if defined(PCBXLITE) || defined(PCBX3) #define INTMODULE_RCC_APB1Periph RCC_APB1Periph_TIM3 #define INTMODULE_RCC_APB2Periph RCC_APB2Periph_USART1 diff --git a/radio/src/tasks.cpp b/radio/src/tasks.cpp index 4cef81255..2c787860b 100644 --- a/radio/src/tasks.cpp +++ b/radio/src/tasks.cpp @@ -89,7 +89,7 @@ void sendSynchronousPulses() { for (uint8_t module = 0; module < NUM_MODULES; module++) { if (isModuleSynchronous(module) && setupPulses(module)) { -#if defined(PCBHORUS) || defined(PCBTARANIS) +#if defined(HARDWARE_INTERNAL_MODULE) if (module == INTERNAL_MODULE) intmoduleSendNextFrame(); #endif