* for all further flight computations
*/
-#define GRAVITY 9.80665
-
/*
* Above this height, the baro sensor doesn't work
*/
+#if HAS_MS5607
+#define AO_MAX_BARO_HEIGHT 30000
+#else
#define AO_MAX_BARO_HEIGHT 12000
+#endif
/*
* Above this speed, baro measurements are unreliable
#define AO_MSS_TO_ACCEL(mss) ((int16_t) ((mss) * 16))
extern __pdata uint16_t ao_sample_tick; /* time of last data */
-extern __pdata pres_t ao_sample_pres; /* most recent pressure sensor reading */
-extern __pdata alt_t ao_sample_alt; /* MSL of ao_sample_pres */
-extern __pdata alt_t ao_sample_height; /* AGL of ao_sample_pres */
extern __data uint8_t ao_sample_adc; /* Ring position of last processed sample */
extern __data uint8_t ao_sample_data; /* Ring position of last processed sample */
-#if HAS_ACCEL
-extern __pdata accel_t ao_sample_accel; /* most recent accel sensor reading */
-#endif
-
+#if HAS_BARO
+extern __pdata pres_t ao_sample_pres; /* most recent pressure sensor reading */
+extern __pdata alt_t ao_sample_alt; /* MSL of ao_sample_pres */
+extern __pdata alt_t ao_sample_height; /* AGL of ao_sample_pres */
extern __pdata pres_t ao_ground_pres; /* startup pressure */
extern __pdata alt_t ao_ground_height; /* MSL of ao_ground_pres */
+#endif
#if HAS_ACCEL
+extern __pdata accel_t ao_sample_accel; /* most recent accel sensor reading */
extern __pdata accel_t ao_ground_accel; /* startup acceleration */
extern __pdata accel_t ao_accel_2g; /* factory accel calibration */
extern __pdata int32_t ao_accel_scale; /* sensor to m/s² conversion */
#endif
+#if HAS_GYRO
+extern __pdata accel_t ao_ground_accel_along;
+extern __pdata accel_t ao_ground_accel_across;
+extern __pdata accel_t ao_ground_accel_through;
+extern __pdata int32_t ao_ground_pitch; /* * 512 */
+extern __pdata int32_t ao_ground_yaw; /* * 512 */
+extern __pdata int32_t ao_ground_roll; /* * 512 */
+extern __pdata accel_t ao_sample_accel_along;
+extern __pdata accel_t ao_sample_accel_across;
+extern __pdata accel_t ao_sample_accel_through;
+extern __pdata gyro_t ao_sample_roll;
+extern __pdata gyro_t ao_sample_pitch;
+extern __pdata gyro_t ao_sample_yaw;
+extern __pdata angle_t ao_sample_orient;
+#endif
void ao_sample_init(void);
extern __pdata int16_t ao_height; /* meters */
extern __pdata int16_t ao_speed; /* m/s * 16 */
extern __pdata int16_t ao_accel; /* m/s² * 16 */
-extern __pdata int16_t ao_max_height; /* max of ao_height */
-extern __pdata int16_t ao_avg_height; /* running average of height */
+extern __xdata int16_t ao_max_height; /* max of ao_height */
+extern __xdata int16_t ao_avg_height; /* running average of height */
extern __pdata int16_t ao_error_h;
extern __pdata int16_t ao_error_h_sq_avg;