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 -
   354   355   356   357   358   359   360   361   362   363   364