projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doc: Make micropeak.xsl validate
[fw/altos]
/
src
/
core
/
ao_microflight.c
diff --git
a/src/core/ao_microflight.c
b/src/core/ao_microflight.c
index 714bb90a946b6dd9cee6d4b99dc9a5765b8115e5..f680e4005c98a5cf9be432ed61509f79d1239863 100644
(file)
--- a/
src/core/ao_microflight.c
+++ b/
src/core/ao_microflight.c
@@
-33,7
+33,7
@@
ao_microsample(void)
ao_microkalman_correct();
}
ao_microkalman_correct();
}
-#define NUM_PA_HIST
16
+#define NUM_PA_HIST
(GROUND_AVG)
#define SKIP_PA_HIST(i,j) (((i) + (j)) & (NUM_PA_HIST - 1))
#define SKIP_PA_HIST(i,j) (((i) + (j)) & (NUM_PA_HIST - 1))
@@
-60,11
+60,11
@@
ao_microflight(void)
h = 0;
for (;;) {
time += SAMPLE_SLEEP;
h = 0;
for (;;) {
time += SAMPLE_SLEEP;
- if (
sample_count
== 0)
+ if (
(sample_count & 0x1f)
== 0)
ao_led_on(AO_LED_REPORT);
ao_delay_until(time);
ao_microsample();
ao_led_on(AO_LED_REPORT);
ao_delay_until(time);
ao_microsample();
- if (
sample_count
== 0)
+ if (
(sample_count & 0x1f)
== 0)
ao_led_off(AO_LED_REPORT);
pa_hist[h] = pa;
h = SKIP_PA_HIST(h,1);
ao_led_off(AO_LED_REPORT);
pa_hist[h] = pa;
h = SKIP_PA_HIST(h,1);
@@
-85,10
+85,10
@@
ao_microflight(void)
}
}
}
}
- /* Go back and find the
first sample a decent interval above
the ground */
+ /* Go back and find the
last sample close to
the ground */
pa_min = pa_ground - LAND_DETECT;
pa_min = pa_ground - LAND_DETECT;
- for (i = SKIP_PA_HIST(h,
2); i != h; i = SKIP_PA_HIST(i,
2)) {
- if (pa_hist[i]
<
pa_min)
+ for (i = SKIP_PA_HIST(h,
-2); i != SKIP_PA_HIST(h,2); i = SKIP_PA_HIST(i,-
2)) {
+ if (pa_hist[i]
>=
pa_min)
break;
}
break;
}