Added support for EXT3 / EXT4

This commit is contained in:
Raphael Coeffic
2021-11-10 11:07:03 +01:00
parent 5a727ed6d1
commit 11621cf736
9 changed files with 33 additions and 53 deletions
-2
View File
@@ -603,10 +603,8 @@ enum MixSources {
#if defined(PCBX10)
MIXSRC_EXT1, LUA_EXPORT("ext1", "Ext 1")
MIXSRC_EXT2, LUA_EXPORT("ext2", "Ext 2")
#if defined(FLYSKY_HALL_STICKS) && defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
MIXSRC_EXT3, LUA_EXPORT("ext3", "Ext 3")
MIXSRC_EXT4, LUA_EXPORT("ext4", "Ext 4")
#endif
#endif
MIXSRC_FIRST_SLIDER SKIP,
#if defined(PCBX12S)
+7 -2
View File
@@ -131,8 +131,13 @@ static inline void check_struct()
CHKSIZE(RadioData, 899);
CHKSIZE(ModelData, 6604);
#elif defined(PCBHORUS)
CHKSIZE(RadioData, 902);
CHKSIZE(ModelData, 11020);
#if defined(PCBX10)
CHKSIZE(RadioData, 920);
CHKSIZE(ModelData, 11022);
#else
CHKSIZE(RadioData, 902);
CHKSIZE(ModelData, 11020);
#endif
#endif
#undef CHKSIZE
-12
View File
@@ -1070,19 +1070,7 @@ void getADC()
if (x < 4) {
v = get_flysky_hall_adc_value(x) >> (1 - ANALOG_SCALE);
} else {
#if defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
switch (x) {
case EXT3:
case EXT4:
v = getAnalogValue(x - 7) >> (1 - ANALOG_SCALE);
break;
default:
v = getAnalogValue(x) >> (1 - ANALOG_SCALE);
break;
}
#else
v = getAnalogValue(x) >> (1 - ANALOG_SCALE);
#endif
}
#else
v = getAnalogValue(x) >> (1 - ANALOG_SCALE);
@@ -114,6 +114,8 @@ const struct YamlIdStr enum_MixSources[] = {
{ MIXSRC_S2, "S2" },
{ MIXSRC_EXT1, "EXT1" },
{ MIXSRC_EXT2, "EXT2" },
{ MIXSRC_EXT3, "EXT3" },
{ MIXSRC_EXT4, "EXT4" },
{ MIXSRC_LS, "LS" },
{ MIXSRC_RS, "RS" },
{ MIXSRC_MOUSE1, "MOUSE1" },
@@ -380,7 +382,7 @@ static const struct YamlNode struct_OpenTxTheme__PersistentData[] = {
static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "version", 8 ),
YAML_PADDING( 16 ),
YAML_ARRAY("calib", 48, 15, struct_CalibData, NULL),
YAML_ARRAY("calib", 48, 17, struct_CalibData, NULL),
YAML_PADDING( 16 ),
YAML_UNSIGNED( "vBatWarn", 8 ),
YAML_SIGNED( "txVoltageCalibration", 8 ),
@@ -446,7 +448,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr),
YAML_ARRAY("slidersConfig", 1, 8, struct_sliderConfig, nullptr),
YAML_PADDING( 240 ),
YAML_PADDING( 312 ),
YAML_PADDING( 360 ),
YAML_STRING("currModelFilename", 17),
YAML_PADDING( 1 ),
YAML_UNSIGNED( "blOffBright", 7 ),
@@ -872,7 +874,7 @@ static const struct YamlNode struct_ModelData[] = {
YAML_ARRAY("scriptsData", 192, 9, struct_ScriptData, NULL),
YAML_ARRAY("inputNames", 32, 32, struct_string_32, NULL),
YAML_UNSIGNED( "potsWarnEnabled", 8 ),
YAML_ARRAY("potsWarnPosition", 8, 9, struct_signed_8, NULL),
YAML_ARRAY("potsWarnPosition", 8, 11, struct_signed_8, NULL),
YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL),
YAML_ARRAY("screenData", 6800, 5, struct_CustomScreenData, NULL),
YAML_STRUCT("topbarData", 2400, struct_TopBarPersistentData, NULL),
@@ -86,10 +86,8 @@ stm32_hal_adc_channel ADC_MAIN_channels[] = {
{ ADC_CHANNEL_POT3, ADC_SAMPTIME },
{ ADC_CHANNEL_EXT1, ADC_SAMPTIME },
{ ADC_CHANNEL_EXT2, ADC_SAMPTIME },
#if defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
{ ADC_CHANNEL_EXT3, ADC_SAMPTIME },
{ ADC_CHANNEL_EXT4, ADC_SAMPTIME },
#endif
{ ADC_CHANNEL_SLIDER1, ADC_SAMPTIME },
{ ADC_CHANNEL_SLIDER2, ADC_SAMPTIME },
{ ADC_CHANNEL_BATT, ADC_SAMPTIME }
+5 -4
View File
@@ -194,10 +194,11 @@ if(FLYSKY_HALL_STICKS)
add_definitions(-DFLYSKY_HALL_STICKS_REVERSE)
set(FLYSKY_HALL_STICKS_DRIVER flyskyHallStick_driver.cpp)
option(FLYSKY_HALL_STICKS_EXT3_EXT4 "Additional EXT3 & EXT4 inputs for FlySky Hall Sticks" OFF)
if(FLYSKY_HALL_STICKS_EXT3_EXT4)
add_definitions(-DFLYSKY_HALL_STICKS_EXT3_EXT4)
endif()
# option(FLYSKY_HALL_STICKS_EXT3_EXT4
# "Additional EXT3 & EXT4 inputs for FlySky Hall Sticks" OFF)
# if(FLYSKY_HALL_STICKS_EXT3_EXT4)
# add_definitions(-DFLYSKY_HALL_STICKS_EXT3_EXT4)
# endif()
endif()
if(IMU_LSM6DS33)
+7 -14
View File
@@ -355,17 +355,14 @@ void watchdogInit(unsigned int duration);
// ADC driver
#if defined(PCBX10)
#if defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
#define NUM_POTS 7
#else
#define NUM_POTS 5
#endif
#define NUM_POTS 7
#define STORAGE_NUM_POTS 7
#else
#define NUM_POTS 3
#define NUM_POTS 3
#define STORAGE_NUM_POTS 5
#endif
#define NUM_XPOTS NUM_POTS
#define STORAGE_NUM_POTS 5
#if defined(PCBX10)
#define NUM_SLIDERS 2
@@ -393,8 +390,6 @@ enum Analogs {
#if defined(PCBX10)
EXT1,
EXT2,
#endif
#if defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
EXT3,
EXT4,
#endif
@@ -440,7 +435,7 @@ enum Analogs {
#if !defined(PCBX12S) // ext are used by mouse on X12S
#define HARDWARE_EXT1
#define HARDWARE_EXT2
#if defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
#if defined(FLYSKY_HALL_STICKS)
#define HARDWARE_EXT3
#define HARDWARE_EXT4
#endif
@@ -464,10 +459,8 @@ enum CalibratedAnalogs {
#else
CALIBRATED_POT_EXT1,
CALIBRATED_POT_EXT2,
#if defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
CALIBRATED_POT_EXT3,
CALIBRATED_POT_EXT4,
#endif
CALIBRATED_POT_EXT3,
CALIBRATED_POT_EXT4,
CALIBRATED_SLIDER_REAR_LEFT,
CALIBRATED_SLIDER_REAR_RIGHT,
#endif
+8 -9
View File
@@ -283,15 +283,16 @@
#define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_DMA2)
#define ADC_RCC_APB1Periph (RCC_APB1Periph_TIM5)
#define ADC_RCC_APB2Periph (RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC3)
#if !defined(FLYSKY_HALL_STICKS)
// #if !defined(FLYSKY_HALL_STICKS)
// this does not seem to be used anywhere...
#define ADC_GPIO_PIN_STICK_LH GPIO_Pin_0 // PA.00
#define ADC_GPIO_PIN_STICK_LV GPIO_Pin_1 // PA.01
#define ADC_GPIO_PIN_STICK_RH GPIO_Pin_2 // PA.02
#define ADC_GPIO_PIN_STICK_RV GPIO_Pin_3 // PA.03
#elif defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
#define ADC_GPIO_PIN_EXT3 GPIO_Pin_2 // PA.02
#define ADC_GPIO_PIN_EXT4 GPIO_Pin_3 // PA.03
#endif
// #elif defined(FLYSKY_HALL_STICKS_EXT3_EXT4)
// #define ADC_GPIO_PIN_EXT3 GPIO_Pin_2 // PA.02
// #define ADC_GPIO_PIN_EXT4 GPIO_Pin_3 // PA.03
// #endif
#define ADC_GPIO_PIN_POT1 GPIO_Pin_0 // PC.00
#define ADC_GPIO_PIN_POT2 GPIO_Pin_1 // PC.01
#define ADC_GPIO_PIN_POT3 GPIO_Pin_2 // PC.02
@@ -329,10 +330,8 @@
#define ADC_CHANNEL_BATT ADC_Channel_5 // ADC3_IN5
#define ADC_CHANNEL_EXT1 ADC_Channel_6 // ADC3_IN6
#define ADC_CHANNEL_EXT2 ADC_Channel_7 // ADC3_IN7
#if (defined(RADIO_TX16S) && defined(FLYSKY_HALL_STICKS))
#define ADC_CHANNEL_EXT3 ADC_Channel_2 // ADC3_IN2
#define ADC_CHANNEL_EXT4 ADC_Channel_3 // ADC3_IN3
#endif
#define ADC_CHANNEL_EXT3 ADC_Channel_2 // ADC3_IN2: same as RH
#define ADC_CHANNEL_EXT4 ADC_Channel_3 // ADC3_IN3: same as RV
#define ADC_MAIN ADC3
#define ADC_EXT ADC1
#define ADC_SAMPTIME 3
+1 -5
View File
@@ -32,11 +32,7 @@
#define TR_POTS_VSRCRAW STR_CHAR_POT"S1\0" STR_CHAR_POT"6P\0" STR_CHAR_POT"S2\0" STR_CHAR_TRIM "L1\0" STR_CHAR_TRIM "L2\0" STR_CHAR_SLIDER"LS\0" STR_CHAR_SLIDER"RS\0" STR_CHAR_POT"JSx" STR_CHAR_POT"JSy"
#define TR_SW_VSRCRAW STR_CHAR_SWITCH"SA\0" STR_CHAR_SWITCH"SB\0" STR_CHAR_SWITCH"SC\0" STR_CHAR_SWITCH"SD\0" STR_CHAR_SWITCH"SE\0" STR_CHAR_SWITCH"SF\0" STR_CHAR_SWITCH"SG\0" STR_CHAR_SWITCH"SH\0" STR_CHAR_SWITCH"SI\0" STR_CHAR_SWITCH"SJ\0"
#elif defined(PCBX10)
#if defined (FLYSKY_HALL_STICKS_EXT3_EXT4)
#define TR_POTS_VSRCRAW STR_CHAR_POT"S1\0" STR_CHAR_POT"6P\0" STR_CHAR_POT"S2\0" STR_CHAR_POT"EX1" STR_CHAR_POT"EX2" STR_CHAR_POT"EX3" STR_CHAR_POT"EX4" STR_CHAR_SLIDER"LS\0" STR_CHAR_SLIDER"RS\0" STR_CHAR_POT"JSx" STR_CHAR_POT"JSy"
#else
#define TR_POTS_VSRCRAW STR_CHAR_POT"S1\0" STR_CHAR_POT"6P\0" STR_CHAR_POT"S2\0" STR_CHAR_POT"EX1" STR_CHAR_POT"EX2" STR_CHAR_SLIDER"LS\0" STR_CHAR_SLIDER"RS\0" STR_CHAR_POT"JSx" STR_CHAR_POT"JSy"
#endif
#define TR_POTS_VSRCRAW STR_CHAR_POT"S1\0" STR_CHAR_POT"6P\0" STR_CHAR_POT"S2\0" STR_CHAR_POT"EX1" STR_CHAR_POT"EX2" STR_CHAR_POT"EX3" STR_CHAR_POT"EX4" STR_CHAR_SLIDER"LS\0" STR_CHAR_SLIDER"RS\0" STR_CHAR_POT"JSx" STR_CHAR_POT"JSy"
#define TR_SW_VSRCRAW STR_CHAR_SWITCH"SA\0" STR_CHAR_SWITCH"SB\0" STR_CHAR_SWITCH"SC\0" STR_CHAR_SWITCH"SD\0" STR_CHAR_SWITCH"SE\0" STR_CHAR_SWITCH"SF\0" STR_CHAR_SWITCH"SG\0" STR_CHAR_SWITCH"SH\0" STR_CHAR_SWITCH"SI\0" STR_CHAR_SWITCH"SJ\0"
#elif defined(PCBX9E)
#define TR_POTS_VSRCRAW STR_CHAR_POT"F1\0" STR_CHAR_POT"F2\0" STR_CHAR_POT"F3\0" STR_CHAR_POT"F4\0" STR_CHAR_SLIDER"S1\0" STR_CHAR_SLIDER"S2\0" STR_CHAR_SLIDER"LS\0" STR_CHAR_SLIDER"RS\0"