void rxInit(rxConfig_t *rxConfig) { uint8_t i; useRxConfig(rxConfig); rcSampleIndex = 0; for (i = 0; i < MAX_SUPPORTED_RC_CHANNEL_COUNT; i++) { rcData[i] = rxConfig->midrc; } rcData[THROTTLE] = (feature(FEATURE_3D)) ? rxConfig->midrc : rxConfig->rx_min_usec; #ifdef SERIAL_RX if (feature(FEATURE_RX_SERIAL)) { serialRxInit(rxConfig); } #endif if (feature(FEATURE_RX_MSP)) { rxMspInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc); } if (feature(FEATURE_RX_PPM) || feature(FEATURE_RX_PARALLEL_PWM)) { rxRefreshRate = 20000; rxPwmInit(&rxRuntimeConfig, &rcReadRawFunc); } rxRuntimeConfig.auxChannelCount = rxRuntimeConfig.channelCount - STICK_CHANNEL_COUNT; }
void rxInit(rxConfig_t *rxConfig) { uint8_t i; useRxConfig(rxConfig); for (i = 0; i < MAX_SUPPORTED_RC_CHANNEL_COUNT; i++) { rcData[i] = rxConfig->midrc; } if (!feature(FEATURE_3D)) { rcData[0] = rxConfig->rx_min_usec; //wrong,why not rcData[3]??? } #ifdef SERIAL_RX if (feature(FEATURE_RX_SERIAL)) { serialRxInit(rxConfig); } #endif if (feature(FEATURE_RX_MSP)) { rxMspInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc); } if (feature(FEATURE_RX_PPM) || feature(FEATURE_RX_PARALLEL_PWM)) { rxPwmInit(&rxRuntimeConfig, &rcReadRawFunc); } rxRuntimeConfig.auxChannelCount = rxRuntimeConfig.channelCount - STICK_CHANNEL_COUNT; }
void rxInit(rxConfig_t *rxConfig, modeActivationCondition_t *modeActivationConditions) { uint8_t i; uint16_t value; useRxConfig(rxConfig); rcSampleIndex = 0; for (i = 0; i < MAX_SUPPORTED_RC_CHANNEL_COUNT; i++) { rcData[i] = rxConfig->midrc; rcInvalidPulsPeriod[i] = millis() + MAX_INVALID_PULS_TIME; } rcData[THROTTLE] = (feature(FEATURE_3D)) ? rxConfig->midrc : rxConfig->rx_min_usec; // Initialize ARM switch to OFF position when arming via switch is defined for (i = 0; i < MAX_MODE_ACTIVATION_CONDITION_COUNT; i++) { modeActivationCondition_t *modeActivationCondition = &modeActivationConditions[i]; if (modeActivationCondition->modeId == BOXARM && IS_RANGE_USABLE(&modeActivationCondition->range)) { // ARM switch is defined, determine an OFF value if (modeActivationCondition->range.startStep > 0) { value = MODE_STEP_TO_CHANNEL_VALUE((modeActivationCondition->range.startStep - 1)); } else { value = MODE_STEP_TO_CHANNEL_VALUE((modeActivationCondition->range.endStep + 1)); } // Initialize ARM AUX channel to OFF value rcData[modeActivationCondition->auxChannelIndex + NON_AUX_CHANNEL_COUNT] = value; } } #ifdef SERIAL_RX if (feature(FEATURE_RX_SERIAL)) { serialRxInit(rxConfig); } #endif if (feature(FEATURE_RX_MSP)) { rxMspInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc); } if (feature(FEATURE_RX_PPM) || feature(FEATURE_RX_PARALLEL_PWM)) { rxRefreshRate = 20000; rxPwmInit(&rxRuntimeConfig, &rcReadRawFunc); } rxRuntimeConfig.auxChannelCount = rxRuntimeConfig.channelCount - STICK_CHANNEL_COUNT; }