summaryrefslogtreecommitdiff
path: root/src/kernel/ao_microflight.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-07-06 12:35:13 -0700
committerKeith Packard <keithp@keithp.com>2014-07-06 12:36:27 -0700
commitd1527a5457210eb914312cf8857bfb88982a8462 (patch)
treed11aefba40692dfb08e48bceffca8d74f0b412fb /src/kernel/ao_microflight.c
parentf02cc3eec53e9d703837dad55ec2e6625b192588 (diff)
Add support for the "kite" micropeak variant
This uses a 100m 'launch detect' altitude and logs data every 19.2s instead of every .192s. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/kernel/ao_microflight.c')
-rw-r--r--src/kernel/ao_microflight.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/kernel/ao_microflight.c b/src/kernel/ao_microflight.c
index f680e400..df624e79 100644
--- a/src/kernel/ao_microflight.c
+++ b/src/kernel/ao_microflight.c
@@ -43,10 +43,12 @@ void
ao_microflight(void)
{
int16_t sample_count;
+ int16_t log_count;
uint16_t time;
uint32_t pa_interval_min, pa_interval_max;
int32_t pa_diff;
- uint8_t h, i;
+ uint8_t h;
+ uint8_t i;
uint8_t accel_lock = 0;
uint32_t pa_sum = 0;
@@ -93,7 +95,10 @@ ao_microflight(void)
}
/* Log the remaining samples so we get a complete history since leaving the ground */
- for (; i != h; i = SKIP_PA_HIST(i,2)) {
+#if LOG_INTERVAL < NUM_PA_HIST
+ for (; i != h; i = SKIP_PA_HIST(i,2))
+#endif
+ {
pa = pa_hist[i];
ao_log_micro_data();
}
@@ -101,6 +106,7 @@ ao_microflight(void)
/* Now sit around until the pressure is stable again and record the max */
sample_count = 0;
+ log_count = 0;
pa_min = ao_pa;
pa_interval_min = ao_pa;
pa_interval_max = ao_pa;
@@ -112,8 +118,11 @@ ao_microflight(void)
ao_microsample();
if ((sample_count & 3) == 0)
ao_led_off(AO_LED_REPORT);
- if (sample_count & 1)
+ if (log_count == LOG_INTERVAL - 1) {
ao_log_micro_data();
+ log_count = 0;
+ } else
+ log_count++;
/* If accelerating upwards, don't look for min pressure */
if (ao_pa_accel < ACCEL_LOCK_PA)