diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/ao_microflight.c | 12 | ||||
| -rw-r--r-- | src/product/ao_micropeak.h | 6 | 
2 files changed, 9 insertions, 9 deletions
| diff --git a/src/core/ao_microflight.c b/src/core/ao_microflight.c index 714bb90a..f680e400 100644 --- a/src/core/ao_microflight.c +++ b/src/core/ao_microflight.c @@ -33,7 +33,7 @@ ao_microsample(void)  	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)) @@ -60,11 +60,11 @@ ao_microflight(void)  	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(); -		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); @@ -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; -	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;  	} diff --git a/src/product/ao_micropeak.h b/src/product/ao_micropeak.h index 3e3dec15..0cefca6f 100644 --- a/src/product/ao_micropeak.h +++ b/src/product/ao_micropeak.h @@ -20,12 +20,12 @@  #define SAMPLE_SLEEP		AO_MS_TO_TICKS(96) -/* 16 sample, or about two seconds worth */ -#define GROUND_AVG_SHIFT	4 +/* 64 sample, or about six seconds worth */ +#define GROUND_AVG_SHIFT	6  #define GROUND_AVG		(1 << GROUND_AVG_SHIFT)  /* Pressure change (in Pa) to detect boost */ -#define BOOST_DETECT		120	/* 10m at sea level, 12m at 2000m */ +#define BOOST_DETECT		360	/* 30m at sea level, 36m at 2000m */  /* Wait after power on before doing anything to give the user time to assemble the rocket */  #define BOOST_DELAY		AO_SEC_TO_TICKS(60) | 
