|
|
|
@@ -23,27 +23,27 @@
|
|
|
|
|
#if defined(SIMU)
|
|
|
|
|
// not needed
|
|
|
|
|
#elif defined(PCBX10)
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, -1,1,-1, 1,-1, 1, 1,1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, -1,1,-1, 1,-1, 1, 1};
|
|
|
|
|
#elif defined(PCBX9E)
|
|
|
|
|
#if defined(HORUS_STICKS)
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, -1,-1,-1,1, -1,1,-1,-1, -1,-1,-1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, -1,-1,-1,1, -1,1,-1, -1,-1,-1};
|
|
|
|
|
#else
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,1,-1,-1, -1,-1,-1,1, -1,1,-1,-1, -1,-1,-1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,1,-1,-1, -1,-1,-1,1, -1,1,-1, -1,-1,-1};
|
|
|
|
|
#endif
|
|
|
|
|
const uint8_t adcMapping[NUM_ANALOGS] = { 0 /*STICK1*/, 1 /*STICK2*/, 2 /*STICK3*/, 3 /*STICK4*/,
|
|
|
|
|
12 /*POT1*/, 4 /*POT2*/, 5 /*POT3*/, 6 /*POT4*/,
|
|
|
|
|
13 /*SLIDER1*/, 14 /*SLIDER2*/, 7 /*SLIDER3*/, 8 /*SLIDER4*/,
|
|
|
|
|
9 /*TX_VOLTAGE*/, 10 /*ADC_INTREF*/, 11 /*TX_VBAT*/ };
|
|
|
|
|
11 /*POT1*/, 4 /*POT2*/, 5 /*POT3*/, 6 /*POT4*/,
|
|
|
|
|
12 /*SLIDER1*/, 13 /*SLIDER2*/, 7 /*SLIDER3*/, 8 /*SLIDER4*/,
|
|
|
|
|
9 /*TX_VOLTAGE*/, 10 /*TX_VBAT*/ };
|
|
|
|
|
#elif defined(PCBX9DP)
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,-1, 1,1, 1, 1,1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,-1, 1,1, 1, 1};
|
|
|
|
|
#elif defined(PCBX7)
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1, 1,1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1, 1};
|
|
|
|
|
#elif defined(PCBX9LITE)
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1,1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1};
|
|
|
|
|
#elif defined(PCBXLITE)
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,-1,1, -1,1, 1, 1,1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,-1,1, -1,1, 1, 1};
|
|
|
|
|
#else
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,0, 1,1, 1, 1,1};
|
|
|
|
|
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,0, 1,1, 1, 1};
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if NUM_PWMSTICKS > 0
|
|
|
|
@@ -106,25 +106,25 @@ void adcInit()
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25);
|
|
|
|
|
}
|
|
|
|
|
#elif defined(PCBX9E)
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_POT4 << 0) + (ADC_CHANNEL_SLIDER3 << 5) + (ADC_CHANNEL_SLIDER4 << 10) + (ADC_CHANNEL_BATT << 15) + (ADC_Channel_Vrefint << 20) + (ADC_Channel_Vbat << 25);
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_POT4 << 0) + (ADC_CHANNEL_SLIDER3 << 5) + (ADC_CHANNEL_SLIDER4 << 10) + (ADC_CHANNEL_BATT << 15) + (ADC_Channel_Vbat << 20);
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT2 << 20) + (ADC_CHANNEL_POT3 << 25);
|
|
|
|
|
#elif defined(PCBXLITE)
|
|
|
|
|
if (STICKS_PWM_ENABLED()) {
|
|
|
|
|
ADC_MAIN->SQR2 = 0;
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_POT1 << 0) + (ADC_CHANNEL_POT2 << 5) + (ADC_CHANNEL_BATT << 10) + (ADC_Channel_Vrefint << 15) + (ADC_Channel_Vbat << 20);
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_POT1 << 0) + (ADC_CHANNEL_POT2 << 5) + (ADC_CHANNEL_BATT << 10) + (ADC_Channel_Vbat << 15);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT << 0) + (ADC_Channel_Vrefint << 5) + (ADC_Channel_Vbat << 10);
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT << 0) + (ADC_Channel_Vbat << 5);
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25);
|
|
|
|
|
}
|
|
|
|
|
#elif defined(PCBX7)
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT << 0) + (ADC_Channel_Vrefint << 5) + (ADC_Channel_Vbat << 10);
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT << 0) + (ADC_Channel_Vbat << 5);
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25);
|
|
|
|
|
#elif defined(PCBX9LITE)
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_Channel_Vrefint << 0) + (ADC_Channel_Vbat << 5);
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_Channel_Vbat << 0);
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_BATT << 25);
|
|
|
|
|
#elif defined(PCBX9D) || defined(PCBX9DP)
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_POT3 << 0) + (ADC_CHANNEL_SLIDER1 << 5) + (ADC_CHANNEL_SLIDER2 << 10) + (ADC_CHANNEL_BATT << 15) + (ADC_Channel_Vrefint << 20) + (ADC_Channel_Vbat << 25);
|
|
|
|
|
ADC_MAIN->SQR2 = (ADC_CHANNEL_POT3 << 0) + (ADC_CHANNEL_SLIDER1 << 5) + (ADC_CHANNEL_SLIDER2 << 10) + (ADC_CHANNEL_BATT << 15) + (ADC_Channel_Vbat << 20);
|
|
|
|
|
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH << 0) + (ADC_CHANNEL_STICK_LV << 5) + (ADC_CHANNEL_STICK_RV << 10) + (ADC_CHANNEL_STICK_RH << 15) + (ADC_CHANNEL_POT1 << 20) + (ADC_CHANNEL_POT2 << 25);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@@ -248,12 +248,12 @@ void adcRead()
|
|
|
|
|
#if defined(PCBX10)
|
|
|
|
|
uint16_t getRTCBatteryVoltage()
|
|
|
|
|
{
|
|
|
|
|
return rtcBatteryVoltage * 330 / 2048;
|
|
|
|
|
return rtcBatteryVoltage * ADC_VREF_PREC2 / 2048;
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
uint16_t getRTCBatteryVoltage()
|
|
|
|
|
{
|
|
|
|
|
return (uint16_t )(12100 * 2048 / anaIn(TX_INTREF) * anaIn(TX_RTC_VOLTAGE) / 204800 * 2);
|
|
|
|
|
return (getAnalogValue(TX_RTC_VOLTAGE) * ADC_VREF_PREC2) / 2048;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|