X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_sample.c;h=e3b5e084d8f4c52ec454e30739910bfada8a9912;hb=acc642801aa5f8c0c05bde134e5924fe957ce023;hp=874c91100a665ca1f0ec3680e4392ede174e9acc;hpb=f10009b07b651f69014ac5608f3ca29bce874c24;p=fw%2Faltos diff --git a/src/kernel/ao_sample.c b/src/kernel/ao_sample.c index 874c9110..e3b5e084 100644 --- a/src/kernel/ao_sample.c +++ b/src/kernel/ao_sample.c @@ -35,7 +35,7 @@ #define ACCEL_TYPE int16_t #endif -uint16_t ao_sample_tick; /* time of last data */ +AO_TICK_TYPE ao_sample_tick; /* time of last data */ #if HAS_BARO pres_t ao_sample_pres; alt_t ao_sample_alt; @@ -210,18 +210,18 @@ ao_sample_preflight_set(void) 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_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_sample_motor_pressure_sum = 0; #endif #if HAS_GYRO ao_ground_pitch = ao_sample_pitch_sum; ao_ground_yaw = ao_sample_yaw_sum; ao_ground_roll = ao_sample_roll_sum; - ao_sample_accel_along_sum = 0; - ao_sample_accel_across_sum = 0; - ao_sample_accel_through_sum = 0; ao_sample_pitch_sum = 0; ao_sample_yaw_sum = 0; ao_sample_roll_sum = 0; @@ -252,12 +252,14 @@ ao_sample_preflight_set(void) */ ao_quaternion_vectors_to_rotation(&ao_rotation, &up, &orient); #if HAS_FLIGHT_DEBUG - if (ao_orient_test) + if (ao_orient_test) { printf("\n\treset across %d through %d along %d\n", (ao_ground_accel_across - ao_config.accel_zero_across), (ao_ground_accel_through - ao_config.accel_zero_through), (ao_ground_accel_along - ao_config.accel_zero_along)); -#endif + fflush(stdout); + } +#endif ao_sample_compute_orient(); ao_sample_set_all_orients(); @@ -266,14 +268,13 @@ ao_sample_preflight_set(void) } #if HAS_GYRO - #define TIME_DIV 200.0f static void ao_sample_rotate(void) { #ifdef AO_FLIGHT_TEST - float dt = (int16_t) (ao_sample_tick - ao_sample_prev_tick) / TIME_DIV; + float dt = (AO_TICK_SIGNED) (ao_sample_tick - ao_sample_prev_tick) / TIME_DIV; #else static const float dt = 1/TIME_DIV; #endif @@ -295,6 +296,7 @@ ao_sample_rotate(void) (int) (y * 1000), (int) (z * 1000), ao_sample_orient); + fflush(stdout); } #endif ao_sample_compute_orient();