From a5575725ea5f7d6fe3854022143f5c7f0d0490db Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 4 Jun 2019 15:15:18 +0200 Subject: [PATCH] Refactoring around trainer --- .../common/arm/stm32/hearbeat_driver.cpp | 60 +++++++++++++++++++ radio/src/targets/horus/hal.h | 2 +- radio/src/targets/taranis/board.cpp | 13 ++-- radio/src/targets/taranis/board.h | 21 ++++--- radio/src/targets/taranis/hal.h | 54 ++++++++++++----- .../taranis/intmodule_pulses_driver.cpp | 5 ++ radio/src/targets/taranis/keys_driver.cpp | 2 +- radio/src/targets/taranis/pwr_driver.cpp | 8 +-- radio/src/targets/taranis/trainer_driver.cpp | 60 +++++++++---------- 9 files changed, 160 insertions(+), 65 deletions(-) create mode 100644 radio/src/targets/common/arm/stm32/hearbeat_driver.cpp diff --git a/radio/src/targets/common/arm/stm32/hearbeat_driver.cpp b/radio/src/targets/common/arm/stm32/hearbeat_driver.cpp new file mode 100644 index 000000000..afdc581ed --- /dev/null +++ b/radio/src/targets/common/arm/stm32/hearbeat_driver.cpp @@ -0,0 +1,60 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "opentx.h" + +volatile uint32_t HearbeatCapture = 0; + +void init_xjt_heartbeat() +{ + GPIO_InitTypeDef GPIO_InitStructure; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_InitStructure.GPIO_Pin = HEARTBEAT_GPIO_PIN; + GPIO_Init(HEARTBEAT_GPIO, &GPIO_InitStructure); + + SYSCFG_EXTILineConfig(HEARTBEAT_EXTI_PortSource, HEARTBEAT_EXTI_PinSource); + + EXTI_InitTypeDef EXTI_InitStructure; + EXTI_StructInit(&EXTI_InitStructure); + EXTI_InitStructure.EXTI_Line = HEARTBEAT_EXTI_LINE; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + EXTI_Init(&EXTI_InitStructure); + + NVIC_SetPriority(HEARTBEAT_EXTI_IRQn, 0); // Highest priority interrupt + NVIC_EnableIRQ(HEARTBEAT_EXTI_IRQn); +} + +void stop_xjt_heartbeat() +{ + NVIC_DisableIRQ(HEARTBEAT_EXTI_IRQn); +} + +extern "C" void HEARTBEAT_EXTI_IRQHandler() +{ + if (EXTI_GetITStatus(HEARTBEAT_EXTI_LINE) != RESET) { + HearbeatCapture = TIMER_2MHz_TIMER->CNT; + EXTI_ClearITPendingBit(HEARTBEAT_EXTI_LINE); + } +} diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index b165ad5f0..49fab6b59 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -625,7 +625,7 @@ #endif // Heartbeat (not used) -#define HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD +#define TRAINER_MODULE_RCC_AHB1Periph RCC_AHB1Periph_GPIOD #define HEARTBEAT_GPIO GPIOD #define HEARTBEAT_GPIO_PIN GPIO_Pin_12 // PD.12 diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index 7c9eaa957..8b093e04c 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -155,7 +155,7 @@ void boardInit() SPORT_UPDATE_RCC_AHB1Periph | AUX_SERIAL_RCC_AHB1Periph | TRAINER_RCC_AHB1Periph | - HEARTBEAT_RCC_AHB1Periph | + TRAINER_MODULE_RCC_AHB1Periph | BT_RCC_AHB1Periph | GYRO_RCC_AHB1Periph, ENABLE); @@ -173,6 +173,7 @@ void boardInit() TELEMETRY_RCC_APB1Periph | AUX_SERIAL_RCC_APB1Periph | INTMODULE_RCC_APB1Periph | + TRAINER_MODULE_RCC_APB1Periph | BT_RCC_APB1Periph | GYRO_RCC_APB1Periph, ENABLE); @@ -183,7 +184,7 @@ void boardInit() HAPTIC_RCC_APB2Periph | INTMODULE_RCC_APB2Periph | EXTMODULE_RCC_APB2Periph | - HEARTBEAT_RCC_APB2Periph | + TRAINER_MODULE_RCC_APB2Periph | BT_RCC_APB2Periph, ENABLE); @@ -361,10 +362,10 @@ void checkTrainerSettings() stop_trainer_ppm(); break; case TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE: - stop_cppm_on_heartbeat_capture() ; + stop_trainer_module_cppm() ; break; case TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE: - stop_sbus_on_heartbeat_capture() ; + stop_trainer_module_sbus() ; break; #if defined(TRAINER_BATTERY_COMPARTMENT) case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT: @@ -378,10 +379,10 @@ void checkTrainerSettings() init_trainer_ppm(); break; case TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE: - init_cppm_on_heartbeat_capture(); + init_trainer_module_cppm(); break; case TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE: - init_sbus_on_heartbeat_capture(); + init_trainer_module_sbus(); break; #if defined(TRAINER_BATTERY_COMPARTMENT) case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT: diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 2fd72e1a9..84137477f 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -255,16 +255,19 @@ void extmoduleSendNextFrame(); #define init_trainer_capture() #define stop_trainer_capture() #endif -#if defined(TRAINER_MODULE_HEARTBEAT) - void init_cppm_on_heartbeat_capture(void); - void stop_cppm_on_heartbeat_capture(void); - void init_sbus_on_heartbeat_capture(void); - void stop_sbus_on_heartbeat_capture(void); +#if defined(TRAINER_MODULE_CPPM) + void init_trainer_module_cppm(void); + void stop_trainer_module_cppm(void); #else - #define init_cppm_on_heartbeat_capture() - #define stop_cppm_on_heartbeat_capture() - #define init_sbus_on_heartbeat_capture() - #define stop_sbus_on_heartbeat_capture() + #define init_trainer_module_cppm() + #define stop_trainer_module_cppm() +#endif +#if defined(TRAINER_MODULE_SBUS) + void init_trainer_module_sbus(void); + void stop_trainer_module_sbus(void); +#else + #define init_trainer_module_sbus() + #define stop_trainer_module_sbus() #endif // SBUS diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 1bc8fe5a5..f8a4dbeed 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -1162,26 +1162,52 @@ #define SPORT_UPDATE_RCC_AHB1Periph 0 #endif -// Heartbeat +// Heartbeat for XJT synchro #if defined(PCBXLITE) || defined(PCBX9LITE) #define HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD - #define HEARTBEAT_RCC_APB2Periph 0 #define HEARTBEAT_GPIO GPIOD - #define HEARTBEAT_GPIO_PIN GPIO_Pin_15 // PD.15 + #define HEARTBEAT_GPIO_PIN GPIO_Pin_15 + #define HEARTBEAT_EXTI_PortSource EXTI_PortSourceGPIOD + #define HEARTBEAT_EXTI_PinSource GPIO_PinSource15 + #define HEARTBEAT_EXTI_LINE EXTI_Line15 + #define HEARTBEAT_EXTI_IRQn EXTI15_10_IRQn + #define HEARTBEAT_EXTI_IRQHandler EXTI15_10_IRQHandler #else - #define TRAINER_MODULE_HEARTBEAT #define HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOC - #define HEARTBEAT_RCC_APB2Periph RCC_APB2Periph_USART6 #define HEARTBEAT_GPIO GPIOC - #define HEARTBEAT_GPIO_PIN GPIO_Pin_7 // PC.07 - #define HEARTBEAT_GPIO_PinSource GPIO_PinSource7 - #define HEARTBEAT_GPIO_AF_SBUS GPIO_AF_USART6 - #define HEARTBEAT_GPIO_AF_CAPTURE GPIO_AF_TIM3 - #define HEARTBEAT_USART USART6 - #define HEARTBEAT_USART_IRQHandler USART6_IRQHandler - #define HEARTBEAT_USART_IRQn USART6_IRQn - #define HEARTBEAT_DMA_Stream DMA2_Stream1 - #define HEARTBEAT_DMA_Channel DMA_Channel_5 + #define HEARTBEAT_GPIO_PIN GPIO_Pin_7 + #define HEARTBEAT_EXTI_PortSource EXTI_PortSourceGPIOC + #define HEARTBEAT_EXTI_PinSource GPIO_PinSource7 + #define HEARTBEAT_EXTI_LINE EXTI_Line7 + #define HEARTBEAT_EXTI_IRQn EXTI9_5_IRQn + #define HEARTBEAT_EXTI_IRQHandler EXTI9_5_IRQHandler +#endif + +// Trainer / Trainee from the module bay +#if defined(PCBXLITE) || defined(PCBX9LITE) + #define TRAINER_MODULE_CPPM + #define TRAINER_MODULE_RCC_AHB1Periph RCC_AHB1Periph_GPIOD + #define TRAINER_MODULE_RCC_APB1Periph RCC_APB1Periph_TIM4 + #define TRAINER_MODULE_RCC_APB2Periph 0 + #define TRAINER_MODULE_CPPM_GPIO HEARTBEAT_GPIO + #define TRAINER_MODULE_CPPM_GPIO_PIN HEARTBEAT_GPIO_PIN + #define TRAINER_MODULE_CPPM_GPIO_PinSource GPIO_PinSource15 + #define TRAINER_MODULE_CPPM_GPIO_AF GPIO_AF_TIM4 +#else + #define TRAINER_MODULE_CPPM + #define TRAINER_MODULE_SBUS + #define TRAINER_MODULE_RCC_AHB1Periph RCC_AHB1Periph_GPIOC + #define TRAINER_MODULE_RCC_APB2Periph RCC_APB2Periph_USART6 + #define TRAINER_MODULE_CPPM_GPIO HEARTBEAT_GPIO + #define TRAINER_MODULE_CPPM_GPIO_PIN HEARTBEAT_GPIO_PIN + #define TRAINER_MODULE_CPPM_GPIO_PinSource GPIO_PinSource7 + #define TRAINER_MODULE_SBUS_GPIO_AF GPIO_AF_USART6 + #define TRAINER_MODULE_CPPM_GPIO_AF GPIO_AF_TIM3 + #define TRAINER_MODULE_SBUS_USART USART6 + #define TRAINER_MODULE_SBUS_USART_IRQHandler USART6_IRQHandler + #define TRAINER_MODULE_SBUS_USART_IRQn USART6_IRQn + #define TRAINER_MODULE_SBUS_DMA_Stream DMA2_Stream1 + #define TRAINER_MODULE_SBUS_DMA_Channel DMA_Channel_5 #endif // USB diff --git a/radio/src/targets/taranis/intmodule_pulses_driver.cpp b/radio/src/targets/taranis/intmodule_pulses_driver.cpp index d43938e26..4964956df 100644 --- a/radio/src/targets/taranis/intmodule_pulses_driver.cpp +++ b/radio/src/targets/taranis/intmodule_pulses_driver.cpp @@ -20,6 +20,8 @@ #include "opentx.h" +extern volatile uint32_t HeartbeatCapture; + void intmoduleStop() { INTERNAL_MODULE_OFF(); @@ -37,6 +39,8 @@ void intmoduleSendNextFrame() switch (moduleState[INTERNAL_MODULE].protocol) { #if defined(PXX1) case PROTOCOL_CHANNELS_PXX1_PULSES: + { + INTMODULE_TIMER->ARR = TIMER_2MHz_TIMER->CNT - HeartbeatCapture > 0x2A00 ? 17979 : 18019; INTMODULE_TIMER->CCR2 = intmodulePulsesData.pxx.getLast() - 4000; // 2mS in advance INTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA INTMODULE_DMA_STREAM->CR |= INTMODULE_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; @@ -45,6 +49,7 @@ void intmoduleSendNextFrame() INTMODULE_DMA_STREAM->NDTR = intmodulePulsesData.pxx.getSize(); INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA break; + } #endif #if defined(INTERNAL_MODULE_PPM) diff --git a/radio/src/targets/taranis/keys_driver.cpp b/radio/src/targets/taranis/keys_driver.cpp index 03f0450a6..09d92434c 100644 --- a/radio/src/targets/taranis/keys_driver.cpp +++ b/radio/src/targets/taranis/keys_driver.cpp @@ -228,7 +228,7 @@ void keysInit() GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; #if defined(KEYS_GPIOA_PINS) GPIO_InitStructure.GPIO_Pin = KEYS_GPIOA_PINS; diff --git a/radio/src/targets/taranis/pwr_driver.cpp b/radio/src/targets/taranis/pwr_driver.cpp index e50f5c6bf..836f8f45b 100644 --- a/radio/src/targets/taranis/pwr_driver.cpp +++ b/radio/src/targets/taranis/pwr_driver.cpp @@ -53,11 +53,11 @@ void pwrInit() GPIO_Init(TRAINER_DETECT_GPIO, &GPIO_InitStructure); #endif -#if defined(INTMODULE_USART) && defined(HEARTBEAT_GPIO_PIN) - GPIO_SetBits(HEARTBEAT_GPIO, HEARTBEAT_GPIO_PIN); - GPIO_InitStructure.GPIO_Pin = HEARTBEAT_GPIO_PIN; +#if defined(INTMODULE_USART) && defined(TRAINER_MODULE_CPPM_GPIO_PIN) + GPIO_SetBits(TRAINER_MODULE_CPPM_GPIO, TRAINER_MODULE_CPPM_GPIO_PIN); + GPIO_InitStructure.GPIO_Pin = TRAINER_MODULE_CPPM_GPIO_PIN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_Init(HEARTBEAT_GPIO, &GPIO_InitStructure); + GPIO_Init(TRAINER_MODULE_CPPM_GPIO, &GPIO_InitStructure); #endif pwrOn(); diff --git a/radio/src/targets/taranis/trainer_driver.cpp b/radio/src/targets/taranis/trainer_driver.cpp index b55e843af..1e13deeb1 100644 --- a/radio/src/targets/taranis/trainer_driver.cpp +++ b/radio/src/targets/taranis/trainer_driver.cpp @@ -20,8 +20,8 @@ #include "opentx.h" -#if defined(HEARTBEAT_USART) -DMAFifo<32> heartbeatFifo __DMA (HEARTBEAT_DMA_Stream); +#if defined(TRAINER_MODULE_SBUS_USART) +DMAFifo<32> heartbeatFifo __DMA (TRAINER_MODULE_SBUS_DMA_Stream); #endif void trainerSendNextFrame(); @@ -161,7 +161,7 @@ extern "C" void TRAINER_TIMER_IRQHandler() } } -#if defined(TRAINER_MODULE_HEARTBEAT) +#if defined(TRAINER_MODULE_CPPM) if ((TRAINER_TIMER->DIER & TIM_DIER_CC2IE) && (TRAINER_TIMER->SR & TIM_SR_CC2IF)) { // capture mode on heartbeat pin (external module) capture = TRAINER_TIMER->CCR2; @@ -197,20 +197,20 @@ extern "C" void TRAINER_TIMER_IRQHandler() #endif } -#if defined(TRAINER_MODULE_HEARTBEAT) -void init_cppm_on_heartbeat_capture() +#if defined(TRAINER_MODULE_CPPM) +void init_trainer_module_cppm() { EXTERNAL_MODULE_ON(); - GPIO_PinAFConfig(HEARTBEAT_GPIO, HEARTBEAT_GPIO_PinSource, HEARTBEAT_GPIO_AF_CAPTURE); + GPIO_PinAFConfig(TRAINER_MODULE_CPPM_GPIO, TRAINER_MODULE_CPPM_GPIO_PinSource, TRAINER_MODULE_CPPM_GPIO_AF); GPIO_InitTypeDef GPIO_InitStructure; - GPIO_InitStructure.GPIO_Pin = HEARTBEAT_GPIO_PIN; + GPIO_InitStructure.GPIO_Pin = TRAINER_MODULE_CPPM_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(HEARTBEAT_GPIO, &GPIO_InitStructure); + GPIO_Init(TRAINER_MODULE_CPPM_GPIO, &GPIO_InitStructure); TRAINER_TIMER->ARR = 0xFFFF; TRAINER_TIMER->PSC = (PERI1_FREQUENCY * TIMER_MULT_APB1) / 2000000 - 1; // 0.5uS @@ -225,7 +225,7 @@ void init_cppm_on_heartbeat_capture() NVIC_EnableIRQ(TRAINER_TIMER_IRQn); } -void stop_cppm_on_heartbeat_capture() +void stop_trainer_module_cppm() { TRAINER_TIMER->DIER = 0; TRAINER_TIMER->CR1 &= ~TIM_CR1_CEN; // Stop counter @@ -237,22 +237,22 @@ void stop_cppm_on_heartbeat_capture() } #endif -#if defined(HEARTBEAT_USART) -void init_sbus_on_heartbeat_capture() +#if defined(TRAINER_MODULE_SBUS) +void init_trainer_module_sbus() { EXTERNAL_MODULE_ON(); USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; - GPIO_PinAFConfig(GPIOC, HEARTBEAT_GPIO_PinSource, HEARTBEAT_GPIO_AF_SBUS); + GPIO_PinAFConfig(GPIOC, TRAINER_MODULE_CPPM_GPIO_PinSource, TRAINER_MODULE_SBUS_GPIO_AF); - GPIO_InitStructure.GPIO_Pin = HEARTBEAT_GPIO_PIN; + GPIO_InitStructure.GPIO_Pin = TRAINER_MODULE_CPPM_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; - GPIO_Init(HEARTBEAT_GPIO, &GPIO_InitStructure); + GPIO_Init(TRAINER_MODULE_CPPM_GPIO, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 100000; USART_InitStructure.USART_WordLength = USART_WordLength_9b; @@ -260,14 +260,14 @@ void init_sbus_on_heartbeat_capture() USART_InitStructure.USART_Parity = USART_Parity_Even; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx; - USART_Init(HEARTBEAT_USART, &USART_InitStructure); + USART_Init(TRAINER_MODULE_SBUS_USART, &USART_InitStructure); DMA_InitTypeDef DMA_InitStructure; heartbeatFifo.clear(); - USART_ITConfig(HEARTBEAT_USART, USART_IT_RXNE, DISABLE); - USART_ITConfig(HEARTBEAT_USART, USART_IT_TXE, DISABLE); - DMA_InitStructure.DMA_Channel = HEARTBEAT_DMA_Channel; - DMA_InitStructure.DMA_PeripheralBaseAddr = CONVERT_PTR_UINT(&HEARTBEAT_USART->DR); + USART_ITConfig(TRAINER_MODULE_SBUS_USART, USART_IT_RXNE, DISABLE); + USART_ITConfig(TRAINER_MODULE_SBUS_USART, USART_IT_TXE, DISABLE); + DMA_InitStructure.DMA_Channel = TRAINER_MODULE_SBUS_DMA_Channel; + DMA_InitStructure.DMA_PeripheralBaseAddr = CONVERT_PTR_UINT(&TRAINER_MODULE_SBUS_USART->DR); DMA_InitStructure.DMA_Memory0BaseAddr = CONVERT_PTR_UINT(heartbeatFifo.buffer()); DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = heartbeatFifo.size(); @@ -281,19 +281,19 @@ void init_sbus_on_heartbeat_capture() DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; - DMA_Init(HEARTBEAT_DMA_Stream, &DMA_InitStructure); - USART_DMACmd(HEARTBEAT_USART, USART_DMAReq_Rx, ENABLE); - USART_Cmd(HEARTBEAT_USART, ENABLE); - DMA_Cmd(HEARTBEAT_DMA_Stream, ENABLE); + DMA_Init(TRAINER_MODULE_SBUS_DMA_Stream, &DMA_InitStructure); + USART_DMACmd(TRAINER_MODULE_SBUS_USART, USART_DMAReq_Rx, ENABLE); + USART_Cmd(TRAINER_MODULE_SBUS_USART, ENABLE); + DMA_Cmd(TRAINER_MODULE_SBUS_DMA_Stream, ENABLE); } -void stop_sbus_on_heartbeat_capture() +void stop_trainer_module_sbus() { - DMA_Cmd(HEARTBEAT_DMA_Stream, DISABLE); - USART_Cmd(HEARTBEAT_USART, DISABLE); - USART_DMACmd(HEARTBEAT_USART, USART_DMAReq_Rx, DISABLE); - DMA_DeInit(HEARTBEAT_DMA_Stream); - NVIC_DisableIRQ(HEARTBEAT_USART_IRQn); + DMA_Cmd(TRAINER_MODULE_SBUS_DMA_Stream, DISABLE); + USART_Cmd(TRAINER_MODULE_SBUS_USART, DISABLE); + USART_DMACmd(TRAINER_MODULE_SBUS_USART, USART_DMAReq_Rx, DISABLE); + DMA_DeInit(TRAINER_MODULE_SBUS_DMA_Stream); + NVIC_DisableIRQ(TRAINER_MODULE_SBUS_USART_IRQn); if (!IS_EXTERNAL_MODULE_ENABLED()) { EXTERNAL_MODULE_OFF(); @@ -305,7 +305,7 @@ void stop_sbus_on_heartbeat_capture() int sbusGetByte(uint8_t * byte) { switch (currentTrainerMode) { -#if defined(HEARTBEAT_USART) +#if defined(TRAINER_MODULE_SBUS_USART) case TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE: return heartbeatFifo.pop(*byte); #endif