From 47ea418d5b16680b6dad05bd4e07b34936e8ecf6 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 25 Oct 2015 12:36:46 +0100 Subject: [PATCH] Fix for #2722. Needs tests. --- radio/src/myeeprom.h | 2 +- radio/src/targets/taranis/board_taranis.cpp | 2 +- radio/src/targets/taranis/trainer_driver.cpp | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 9417574de..5882ca4d3 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -449,7 +449,7 @@ PACK(typedef struct { TRAINER_MODULE }; enum TrainerMode { - TRAINER_MODE_MASTER, + TRAINER_MODE_MASTER_TRAINER_JACK, TRAINER_MODE_SLAVE, TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE, TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE, diff --git a/radio/src/targets/taranis/board_taranis.cpp b/radio/src/targets/taranis/board_taranis.cpp index e73accc14..3ffa5e2b4 100644 --- a/radio/src/targets/taranis/board_taranis.cpp +++ b/radio/src/targets/taranis/board_taranis.cpp @@ -264,7 +264,7 @@ void checkTrainerSettings() uint8_t requiredTrainerMode = g_model.trainerMode; if (requiredTrainerMode != currentTrainerMode) { switch (currentTrainerMode) { - case TRAINER_MODE_MASTER: + case TRAINER_MODE_MASTER_TRAINER_JACK: stop_trainer_capture(); break; case TRAINER_MODE_SLAVE: diff --git a/radio/src/targets/taranis/trainer_driver.cpp b/radio/src/targets/taranis/trainer_driver.cpp index c7b9b5ac6..4094edfd1 100644 --- a/radio/src/targets/taranis/trainer_driver.cpp +++ b/radio/src/targets/taranis/trainer_driver.cpp @@ -127,13 +127,15 @@ extern "C" void TIM3_IRQHandler() if ( (TRAINER_TIMER->DIER & TIM_DIER_CC3IE ) && ( TRAINER_TIMER->SR & TIM_SR_CC3IF ) ) { // capture mode on trainer jack capture = TRAINER_TIMER->CCR3 ; - doCapture = true; + if (currentTrainerMode == TRAINER_MODE_MASTER_TRAINER_JACK) + doCapture = true; } if ( ( TRAINER_TIMER->DIER & TIM_DIER_CC2IE ) && ( TRAINER_TIMER->SR & TIM_SR_CC2IF ) ) { // capture mode on heartbeat pin (external module) capture = TRAINER_TIMER->CCR2 ; - doCapture = true ; + if (currentTrainerMode == TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE) + doCapture = true ; } if (doCapture) {