Page 359 - 2
P. 359
//copter is disarmed
f.GPS_mode = GPS_MODE_NONE;
f.GPS_BARO_MODE = false;
f.THROTTLE_IGNORED = false;
NAV_state = NAV_STATE_NONE;
NAV_paused_at = 0;
NAV_error = NAV_ERROR_DISARMED;
GPS_reset_nav();
}
#endif //GPS
#if defined(FIXEDWING) || defined(HELICOPTER)
if (rcOptions[BOXPASSTHRU]) {f.PASSTHRU_MODE = 1;}
else {f.PASSTHRU_MODE = 0;}
#endif
} else { // not in rc loop
static uint8_t taskOrder=0; // never call all functions in the same loop, to avoid high delay s
pikes
switch (taskOrder) {
case 0:
taskOrder++;
#if MAG
if (Mag_getADC() != 0) break; // 320 µs
#endif
case 1:
taskOrder++;
#if BARO
if (Baro_update() != 0) break; // for MS baro: I2C set and get: 220 us - presure an
d temperature computation 160 us
#endif
case 2:
taskOrder++;
#if BARO
if (getEstimatedAltitude() != 0) break; // 280 us
#endif
case 3:
taskOrder++;
#if GPS
if (GPS_Compute() != 0) break; // performs computation on new frame only if present
#if defined(I2C_GPS)
if (GPS_NewData() != 0) break; // 160 us with no new data / much more with new d
ata
#endif
- 359 -