diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 4086dcfee..22b24515c 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -205,6 +205,8 @@ enum { #define SWITCH_TYPE_MAX(sw) ((MIXSRC_SF - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SH - MIXSRC_FIRST_SWITCH == sw) ? SWITCH_2POS : SWITCH_3POS) #elif defined(RADIO_TX12) || defined(RADIO_T8) #define SWITCH_TYPE_MAX(sw) ((MIXSRC_SA - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SD - MIXSRC_FIRST_SWITCH == sw) ? SWITCH_2POS : SWITCH_3POS) +#elif defined(RADIO_T12) + #define SWITCH_TYPE_MAX(sw) ((MIXSRC_SG - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SH - MIXSRC_FIRST_SWITCH == sw) ? SWITCH_2POS : SWITCH_3POS) #else #define SWITCH_TYPE_MAX(sw) ((MIXSRC_SF - MIXSRC_FIRST_SWITCH == sw || MIXSRC_SH - MIXSRC_FIRST_SWITCH <= sw) ? SWITCH_2POS : SWITCH_3POS) #endif diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp index 4c83f6ca7..50693efb8 100644 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp +++ b/radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp @@ -113,7 +113,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_SB, "SB" }, { MIXSRC_SC, "SC" }, { MIXSRC_SD, "SD" }, - { MIXSRC_SF, "SF" }, + { MIXSRC_SG, "SG" }, { MIXSRC_SH, "SH" }, { MIXSRC_SI, "SI" }, { MIXSRC_SJ, "SJ" }, @@ -189,9 +189,9 @@ const struct YamlIdStr enum_SwitchSources[] = { { SWSRC_SD0, "SD0" }, { SWSRC_SD1, "SD1" }, { SWSRC_SD2, "SD2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, + { SWSRC_SG0, "SG0" }, + { SWSRC_SG1, "SG1" }, + { SWSRC_SG2, "SG2" }, { SWSRC_SH0, "SH0" }, { SWSRC_SH1, "SH1" }, { SWSRC_SH2, "SH2" }, diff --git a/radio/src/storage/yaml/yaml_datastructs_t12.cpp b/radio/src/storage/yaml/yaml_datastructs_t12.cpp index 9f0a9a2d9..ea2d446a3 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t12.cpp @@ -133,7 +133,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_SB, "SB" }, { MIXSRC_SC, "SC" }, { MIXSRC_SD, "SD" }, - { MIXSRC_SF, "SF" }, + { MIXSRC_SG, "SG" }, { MIXSRC_SH, "SH" }, { MIXSRC_SI, "SI" }, { MIXSRC_SJ, "SJ" }, @@ -209,9 +209,9 @@ const struct YamlIdStr enum_SwitchSources[] = { { SWSRC_SD0, "SD0" }, { SWSRC_SD1, "SD1" }, { SWSRC_SD2, "SD2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, + { SWSRC_SG0, "SG0" }, + { SWSRC_SG1, "SG1" }, + { SWSRC_SG2, "SG2" }, { SWSRC_SH0, "SH0" }, { SWSRC_SH1, "SH1" }, { SWSRC_SH2, "SH2" }, diff --git a/radio/src/switches.cpp b/radio/src/switches.cpp index 99221d285..8131a3223 100644 --- a/radio/src/switches.cpp +++ b/radio/src/switches.cpp @@ -161,7 +161,11 @@ void getSwitchesPosition(bool startup) CHECK_3POS(3, SW_SF); #elif defined(PCBX7) CHECK_3POS(3, SW_SD); - CHECK_2POS(SW_SF); + #if defined(RADIO_T12) + CHECK_2POS(SW_SG); + #else + CHECK_2POS(SW_SF); + #endif CHECK_2POS(SW_SH); #else CHECK_3POS(3, SW_SD); diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 104340d40..ff85cc531 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -352,12 +352,12 @@ enum EnumSwitchesPositions SW_SE1, SW_SE2, #endif -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || defined(PCBX7) || defined(PCBXLITES) || defined(PCBX9LITES) || defined(RADIO_T8) +#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || (defined(PCBX7) && !defined(RADIO_T12)) || defined(PCBXLITES) || defined(PCBX9LITES) || defined(RADIO_T8) SW_SF0, SW_SF1, SW_SF2, #endif -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || defined(PCBX9LITES) +#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || defined(PCBX9LITES) || defined(RADIO_T12) SW_SG0, SW_SG1, SW_SG2, diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 4eb6077dd..d7256bf17 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -609,6 +609,8 @@ #elif defined(RADIO_T8) || defined(RADIO_TLITE) // no SWF #define STORAGE_SWITCH_F +#elif defined(RADIO_T12) + // no SWF #elif defined(PCBX7) #define STORAGE_SWITCH_F #define HARDWARE_SWITCH_F @@ -633,6 +635,11 @@ #define HARDWARE_SWITCH_G #define SWITCHES_GPIO_REG_G GPIOC->IDR #define SWITCHES_GPIO_PIN_G GPIO_Pin_2 // PC.02 +#elif defined(RADIO_T12) + #define STORAGE_SWITCH_G + #define HARDWARE_SWITCH_G + #define SWITCHES_GPIO_REG_G GPIOE->IDR + #define SWITCHES_GPIO_PIN_G GPIO_Pin_14 // PE.14 #elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8) // no SWG #else diff --git a/radio/src/targets/taranis/keys_driver.cpp b/radio/src/targets/taranis/keys_driver.cpp index 383198f6f..ae7b1b431 100644 --- a/radio/src/targets/taranis/keys_driver.cpp +++ b/radio/src/targets/taranis/keys_driver.cpp @@ -252,7 +252,11 @@ uint32_t switchState(uint8_t index) // Only 4 switches #elif defined(PCBX7) ADD_3POS_CASE(D, 3); +#if defined(RADIO_T12) + ADD_2POS_CASE(G); +#else ADD_2POS_CASE(F); +#endif ADD_2POS_CASE(H); ADD_2POS_CASE(I); ADD_2POS_CASE(J);