static void activateConfig(void) { activateControlRateConfig(); resetAdjustmentStates(); useRcControlsConfig(modeActivationProfile()->modeActivationConditions); pidInitFilters(pidProfile()); #ifdef GPS gpsUsePIDs(pidProfile()); #endif useFailsafeConfig(); setAccelerationTrims(&sensorTrims()->accZero); accelerationFilterInit(accelerometerConfig()->acc_cut_hz); #ifdef USE_SERVOS mixerUseConfigs(servoProfile()->servoConf); #endif #ifdef GPS recalculateMagneticDeclination(); #endif #ifdef VTX initVTXState(); #endif static imuRuntimeConfig_t imuRuntimeConfig; imuRuntimeConfig.dcm_kp = imuConfig()->dcm_kp / 10000.0f; imuRuntimeConfig.dcm_ki = imuConfig()->dcm_ki / 10000.0f; imuRuntimeConfig.acc_cut_hz = accelerometerConfig()->acc_cut_hz; imuRuntimeConfig.acc_unarmedcal = accelerometerConfig()->acc_unarmedcal; imuRuntimeConfig.small_angle = imuConfig()->small_angle; imuConfigure( &imuRuntimeConfig, &accelerometerConfig()->accDeadband, accelerometerConfig()->accz_lpf_cutoff, throttleCorrectionConfig()->throttle_correction_angle ); }
void taskUpdateCompass(void) { if (sensors(SENSOR_MAG)) { updateCompass(&sensorTrims()->magZero); } }