altos: Use max of 64 previous orient values when checking pyro limits
[fw/altos] / src / kernel / ao_sample.h
index da40187b0d7effd77aff60a49e63518c57e05007..5ae389bec7c636e4356b1d0c4042fd7fee5e25b0 100644 (file)
@@ -95,7 +95,12 @@ typedef int16_t                      ao_v_t;
 /*
  * Above this speed, baro measurements are unreliable
  */
-#define AO_MAX_BARO_SPEED      200
+#define AO_MAX_BARO_SPEED      248
+
+/* The maximum amount (in a range of 0-256) to de-rate the
+ * baro sensor data based on speed.
+ */
+#define AO_MAX_SPEED_DISTRUST  160
 
 #define ACCEL_NOSE_UP  (ao_accel_2g >> 2)
 
@@ -141,7 +146,10 @@ 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;
+#define AO_NUM_ORIENT  64
 extern __pdata angle_t ao_sample_orient;
+extern __pdata angle_t ao_sample_orients[AO_NUM_ORIENT];
+extern __pdata uint8_t ao_sample_orient_pos;
 #endif
 
 void ao_sample_init(void);
@@ -175,7 +183,9 @@ extern __xdata ao_v_t                       ao_max_height;  /* max of ao_height */
 extern __xdata ao_v_t                  ao_avg_height;  /* running average of height */
 
 extern __pdata ao_v_t                  ao_error_h;
+#if !HAS_ACCEL
 extern __pdata ao_v_t                  ao_error_h_sq_avg;
+#endif
 
 #if HAS_ACCEL
 extern __pdata ao_v_t                  ao_error_a;