Merge pull request #709 from EdgeTX/FlySkyHallPlus2Analogs
Enable EX3 and EX4 on TX16S in combination with FlySky Hall Gimbal
This commit is contained in:
+14
-1
@@ -1070,7 +1070,20 @@ void getADC()
|
||||
if (x < 4)
|
||||
v = get_flysky_hall_adc_value(x) >> (1 - ANALOG_SCALE);
|
||||
else
|
||||
v = getAnalogValue(x) >> (1 - ANALOG_SCALE);
|
||||
#if defined(RADIO_TX16S)
|
||||
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);
|
||||
#endif
|
||||
|
||||
@@ -85,6 +85,10 @@ stm32_hal_adc_channel ADC_MAIN_channels[] = {
|
||||
{ ADC_CHANNEL_POT3, ADC_SAMPTIME },
|
||||
{ ADC_CHANNEL_EXT1, ADC_SAMPTIME },
|
||||
{ ADC_CHANNEL_EXT2, ADC_SAMPTIME },
|
||||
#if (defined(RADIO_TX16S) && defined(FLYSKY_HALL_STICKS))
|
||||
{ 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 }
|
||||
|
||||
@@ -55,8 +55,13 @@ if (PCB STREQUAL X10)
|
||||
set(TARGET_SRC
|
||||
${TARGET_SRC}
|
||||
../common/arm/stm32/audio_dac_driver.cpp
|
||||
../common/arm/stm32/sticks_pwm_driver.cpp
|
||||
)
|
||||
if (NOT PCBREV STREQUAL TX16S)
|
||||
set(TARGET_SRC
|
||||
${TARGET_SRC}
|
||||
../common/arm/stm32/sticks_pwm_driver.cpp
|
||||
)
|
||||
endif()
|
||||
set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
../common/arm/stm32/stm32_hal_adc.cpp
|
||||
|
||||
@@ -335,7 +335,11 @@ void watchdogInit(unsigned int duration);
|
||||
// ADC driver
|
||||
|
||||
#if defined(PCBX10)
|
||||
#define NUM_POTS 5
|
||||
#if defined(RADIO_TX16S) && defined(FLYSKY_HALL_STICKS)
|
||||
#define NUM_POTS 7
|
||||
#else
|
||||
#define NUM_POTS 5
|
||||
#endif
|
||||
#else
|
||||
#define NUM_POTS 3
|
||||
#endif
|
||||
@@ -345,7 +349,11 @@ void watchdogInit(unsigned int duration);
|
||||
|
||||
#if defined(PCBX10)
|
||||
#define NUM_SLIDERS 2
|
||||
#define NUM_PWMSTICKS 4
|
||||
#if defined(RADIO_TX16S)
|
||||
#define NUM_PWMSTICKS 0
|
||||
#else
|
||||
#define NUM_PWMSTICKS 4
|
||||
#endif
|
||||
#else
|
||||
#define NUM_SLIDERS 4
|
||||
#define NUM_PWMSTICKS 0
|
||||
@@ -365,6 +373,10 @@ enum Analogs {
|
||||
#if defined(PCBX10)
|
||||
EXT1,
|
||||
EXT2,
|
||||
#endif
|
||||
#if defined(RADIO_TX16S) && defined(FLYSKY_HALL_STICKS)
|
||||
EXT3,
|
||||
EXT4,
|
||||
#endif
|
||||
POT_LAST = POT_FIRST + NUM_POTS - 1,
|
||||
SLIDER_FIRST,
|
||||
@@ -406,8 +418,12 @@ enum Analogs {
|
||||
|
||||
#define HARDWARE_POT3
|
||||
#if !defined(PCBX12S) // ext are used by mouse on X12S
|
||||
#define HARDWARE_EXT1
|
||||
#define HARDWARE_EXT2
|
||||
#define HARDWARE_EXT1
|
||||
#define HARDWARE_EXT2
|
||||
#if (defined(RADIO_TX16S) && defined(FLYSKY_HALL_STICKS))
|
||||
#define HARDWARE_EXT3
|
||||
#define HARDWARE_EXT4
|
||||
#endif
|
||||
#endif
|
||||
|
||||
enum CalibratedAnalogs {
|
||||
@@ -428,6 +444,10 @@ enum CalibratedAnalogs {
|
||||
#else
|
||||
CALIBRATED_POT_EXT1,
|
||||
CALIBRATED_POT_EXT2,
|
||||
#if (defined(RADIO_TX16S) && defined(FLYSKY_HALL_STICKS))
|
||||
CALIBRATED_POT_EXT3,
|
||||
CALIBRATED_POT_EXT4,
|
||||
#endif
|
||||
CALIBRATED_SLIDER_REAR_LEFT,
|
||||
CALIBRATED_SLIDER_REAR_RIGHT,
|
||||
#endif
|
||||
|
||||
@@ -282,10 +282,15 @@
|
||||
#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)
|
||||
#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
|
||||
#if !(defined(RADIO_TX16S) && defined(FLYSKY_HALL_STICKS))
|
||||
#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
|
||||
#else
|
||||
#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
|
||||
@@ -294,14 +299,20 @@
|
||||
#define ADC_GPIO_PIN_BATT GPIO_Pin_7 // PF.07
|
||||
#define ADC_GPIO_PIN_EXT1 GPIO_Pin_8 // PF.08
|
||||
#define ADC_GPIO_PIN_EXT2 GPIO_Pin_9 // PF.09
|
||||
#define PWM_TIMER TIM5
|
||||
#define PWM_GPIO GPIOA
|
||||
#define PWM_GPIO_AF GPIO_AF_TIM5
|
||||
#define PWM_IRQHandler TIM5_IRQHandler
|
||||
#define PWM_IRQn TIM5_IRQn
|
||||
#define PWM_GPIOA_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3)
|
||||
#if !defined(FLYSKY_HALL_STICKS)
|
||||
#define ADC_GPIOA_PINS (STICKS_PWM_ENABLED() ? 0 : (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3))
|
||||
#if !defined(RADIO_TX16S)
|
||||
#define PWM_TIMER TIM5
|
||||
#define PWM_GPIO GPIOA
|
||||
#define PWM_GPIO_AF GPIO_AF_TIM5
|
||||
#define PWM_IRQHandler TIM5_IRQHandler
|
||||
#define PWM_IRQn TIM5_IRQn
|
||||
#define PWM_GPIOA_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3)
|
||||
#endif
|
||||
#if defined(FLYSKY_HALL_STICKS)
|
||||
#if defined (RADIO_TX16S)
|
||||
#define ADC_GPIOA_PINS (GPIO_Pin_2 | GPIO_Pin_3)
|
||||
#endif
|
||||
#else
|
||||
#define ADC_GPIOA_PINS (STICKS_PWM_ENABLED() ? 0 : (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3))
|
||||
#endif
|
||||
#define ADC_GPIOC_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3)
|
||||
#define ADC_GPIOF_PINS (GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9)
|
||||
@@ -317,6 +328,10 @@
|
||||
#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_MAIN ADC3
|
||||
#define ADC_EXT ADC1
|
||||
#define ADC_SAMPTIME 3
|
||||
|
||||
@@ -33,7 +33,11 @@
|
||||
#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)
|
||||
#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"
|
||||
#if defined (RADIO_TX16S) && defined(FLYSKY_HALL_STICKS)
|
||||
#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_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"
|
||||
|
||||
Reference in New Issue
Block a user