1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 00:05:33 +03:00

Avoids initialisation of UART2 when PWM or PPM RX is used

This commit is contained in:
Martin Budden 2016-07-28 00:40:04 +01:00
parent 6dcefedde6
commit 5c1c64fc41
4 changed files with 14 additions and 5 deletions

View file

@ -364,7 +364,7 @@ void closeSerialPort(serialPort_t *serialPort) {
serialPortUsage->serialPort = NULL;
}
void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled)
void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled, serialPortIdentifier_e serialPortToDisable)
{
uint8_t index;
@ -376,6 +376,12 @@ void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled)
for (index = 0; index < SERIAL_PORT_COUNT; index++) {
serialPortUsageList[index].identifier = serialPortIdentifiers[index];
if (serialPortToDisable != SERIAL_PORT_NONE) {
if (serialPortUsageList[index].identifier == serialPortToDisable) {
serialPortUsageList[index].identifier = SERIAL_PORT_NONE;
serialPortCount--;
}
}
if (!softserialEnabled) {
if (0
#ifdef USE_SOFTSERIAL1

View file

@ -100,6 +100,7 @@ typedef void serialConsumer(uint8_t);
//
// configuration
//
void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled, serialPortIdentifier_e serialPortToDisable);
void serialRemovePort(serialPortIdentifier_e identifier);
uint8_t serialGetAvailablePortCount(void);
bool serialIsPortAvailable(serialPortIdentifier_e identifier);

View file

@ -118,7 +118,6 @@ serialPort_t *loopbackPort;
void printfSupportInit(void);
void timerInit(void);
void telemetryInit(void);
void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled);
void mspInit(serialConfig_t *serialConfig);
void cliInit(serialConfig_t *serialConfig);
void failsafeInit(rxConfig_t *intialRxConfig, uint16_t deadband3d_throttle);
@ -248,7 +247,12 @@ void init(void)
dmaInit();
serialInit(&masterConfig.serialConfig, feature(FEATURE_SOFTSERIAL));
#ifdef AVOID_UART2_PWM_PPM
serialInit(&masterConfig.serialConfig, feature(FEATURE_SOFTSERIAL),
feature(FEATURE_RX_PPM) || feature(FEATURE_RX_PARALLEL_PWM) ? SERIAL_PORT_USART2 : SERIAL_PORT_NONE);
#else
serialInit(&masterConfig.serialConfig, feature(FEATURE_SOFTSERIAL), SERIAL_PORT_NONE);
#endif
#ifdef USE_SERVOS
mixerInit(masterConfig.mixerMode, masterConfig.customMotorMixer, masterConfig.customServoMixer);

View file

@ -151,8 +151,6 @@ static telemetryConfig_t *telemetryConfig;
static bool smartPortTelemetryEnabled = false;
static portSharing_e smartPortPortSharing;
extern void serialInit(serialConfig_t *); // from main.c // FIXME remove this dependency
char smartPortState = SPSTATE_UNINITIALIZED;
static uint8_t smartPortHasRequest = 0;
static uint8_t smartPortIdCnt = 0;