X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_sample.c;h=9cba36c1004b37ec31717e7c4431e08ede4bf615;hb=HEAD;hp=e3b5e084d8f4c52ec454e30739910bfada8a9912;hpb=7f46240dfc57164f0c1b0c4c4ed9695bca63860d;p=fw%2Faltos diff --git a/src/kernel/ao_sample.c b/src/kernel/ao_sample.c index e3b5e084..422ccec6 100644 --- a/src/kernel/ao_sample.c +++ b/src/kernel/ao_sample.c @@ -21,6 +21,10 @@ #include #endif +#ifndef HAS_KALMAN +#define HAS_KALMAN 1 +#endif + #if HAS_GYRO #include #endif @@ -57,7 +61,7 @@ angle_t ao_sample_orient; angle_t ao_sample_orients[AO_NUM_ORIENT]; uint8_t ao_sample_orient_pos; #endif -#ifdef HAS_MOTOR_PRESSURE +#if HAS_MOTOR_PRESSURE motor_pressure_t ao_sample_motor_pressure; #endif @@ -161,7 +165,7 @@ static void ao_sample_set_one_orient(void) { ao_sample_orients[ao_sample_orient_pos] = ao_sample_orient; - ao_sample_orient_pos = (ao_sample_orient_pos + 1) % AO_NUM_ORIENT; + ao_sample_orient_pos = (uint8_t) ((ao_sample_orient_pos + 1) % AO_NUM_ORIENT); } static void @@ -190,7 +194,7 @@ ao_sample_compute_orient(void) float rotz; rotz = ao_rotation.z * ao_rotation.z - ao_rotation.y * ao_rotation.y - ao_rotation.x * ao_rotation.x + ao_rotation.r * ao_rotation.r; - ao_sample_orient = acosf(rotz) * (float) (180.0/M_PI); + ao_sample_orient = (angle_t) (acosf(rotz) * (float) (180.0/M_PI)); } #endif /* HAS_GYRO */ @@ -198,7 +202,7 @@ static void ao_sample_preflight_set(void) { #if HAS_ACCEL - ao_ground_accel = ao_sample_accel_sum >> 9; + ao_ground_accel = (accel_t) (ao_sample_accel_sum >> 9); ao_sample_accel_sum = 0; #endif #if HAS_BARO @@ -207,15 +211,15 @@ ao_sample_preflight_set(void) ao_sample_pres_sum = 0; #endif #if HAS_IMU - ao_ground_accel_along = ao_sample_accel_along_sum >> 9; - ao_ground_accel_across = ao_sample_accel_across_sum >> 9; - ao_ground_accel_through = ao_sample_accel_through_sum >> 9; + ao_ground_accel_along = (accel_t) (ao_sample_accel_along_sum >> 9); + ao_ground_accel_across = (accel_t) (ao_sample_accel_across_sum >> 9); + ao_ground_accel_through = (accel_t) (ao_sample_accel_through_sum >> 9); ao_sample_accel_along_sum = 0; ao_sample_accel_across_sum = 0; ao_sample_accel_through_sum = 0; #endif #if HAS_MOTOR_PRESSURE - ao_ground_motor_pressure = ao_sample_motor_pressure_sum >> 9; + ao_ground_motor_pressure = (motor_pressure_t) (ao_sample_motor_pressure_sum >> 9); ao_sample_motor_pressure_sum = 0; #endif #if HAS_GYRO @@ -340,7 +344,7 @@ ao_sample_preflight_update(void) ++nsamples; else ao_sample_preflight_set(); -#if !HAS_BARO +#if !HAS_BARO && HAS_KALMAN if ((nsamples & 0x3f) == 0) ao_kalman_reset_accumulate(); #endif @@ -406,7 +410,9 @@ ao_sample(void) else { if (ao_flight_state < ao_flight_boost) ao_sample_preflight_update(); +#if HAS_KALMAN ao_kalman(); +#endif #if HAS_GYRO ao_sample_rotate(); #endif