X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_sample.c;h=b3e12b19df7579ff50734defc8153fa9247db8d3;hb=2f32a19aedb7d0e33899038e3fb04fe8a773291a;hp=115eae802a2cc9a0daba5d8e2532662f6acc39bd;hpb=c6e57291d91f1f6c4de5c54a5cfd3eef66d9f830;p=fw%2Faltos diff --git a/src/kernel/ao_sample.c b/src/kernel/ao_sample.c index 115eae80..b3e12b19 100644 --- a/src/kernel/ao_sample.c +++ b/src/kernel/ao_sample.c @@ -36,9 +36,11 @@ #endif uint16_t ao_sample_tick; /* time of last data */ +#if HAS_BARO pres_t ao_sample_pres; alt_t ao_sample_alt; alt_t ao_sample_height; +#endif #if HAS_ACCEL accel_t ao_sample_accel; #endif @@ -60,8 +62,10 @@ uint8_t ao_sample_data; * Sensor calibration values */ +#if HAS_BARO pres_t ao_ground_pres; /* startup pressure */ alt_t ao_ground_height; /* MSL of ao_ground_pres */ +#endif #if HAS_ACCEL accel_t ao_ground_accel; /* startup acceleration */ @@ -81,7 +85,9 @@ int32_t ao_ground_roll; static uint8_t ao_preflight; /* in preflight mode */ static uint16_t nsamples; +#if HAS_BARO int32_t ao_sample_pres_sum; +#endif #if HAS_ACCEL int32_t ao_sample_accel_sum; #endif @@ -105,7 +111,9 @@ ao_sample_preflight_add(void) #if HAS_ACCEL ao_sample_accel_sum += ao_sample_accel; #endif +#if HAS_BARO ao_sample_pres_sum += ao_sample_pres; +#endif #if HAS_GYRO ao_sample_accel_along_sum += ao_sample_accel_along; ao_sample_accel_across_sum += ao_sample_accel_across; @@ -171,9 +179,11 @@ ao_sample_preflight_set(void) ao_ground_accel = ao_sample_accel_sum >> 9; ao_sample_accel_sum = 0; #endif +#if HAS_BARO ao_ground_pres = ao_sample_pres_sum >> 9; ao_ground_height = pres_to_altitude(ao_ground_pres); ao_sample_pres_sum = 0; +#endif #if HAS_GYRO ao_ground_accel_along = ao_sample_accel_along_sum >> 9; ao_ground_accel_across = ao_sample_accel_across_sum >> 9; @@ -277,7 +287,7 @@ ao_sample_preflight(void) ao_accel_scale = to_fix_32(GRAVITY * 2 * 16) / ao_accel_2g; #endif ao_sample_preflight_set(); - ao_preflight = FALSE; + ao_preflight = false; } } @@ -375,8 +385,10 @@ ao_sample_init(void) { ao_config_get(); nsamples = 0; +#if HAS_BARO ao_sample_pres_sum = 0; ao_sample_pres = 0; +#endif #if HAS_ACCEL ao_sample_accel_sum = 0; ao_sample_accel = 0; @@ -398,5 +410,5 @@ ao_sample_init(void) ao_sample_set_all_orients(); #endif ao_sample_data = ao_data_head; - ao_preflight = TRUE; + ao_preflight = true; }