Set version to 1.5.9.1
[fw/altos] / src / kernel / ao_config.c
index 6b8a1813509e5bb5634cef96e0d6e7456bce22bb..83a8cd77092e7449509ee75fa7d38907c2c18c46 100644 (file)
@@ -388,6 +388,7 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant
        uint16_t        i;
        int32_t         accel_total;
        uint8_t         cal_data_ring;
+       int16_t         min = 32767, max = -32768;
 #if HAS_GYRO
        int32_t         accel_along_total = 0;
        int32_t         accel_across_total = 0;
@@ -405,7 +406,10 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant
        while (i) {
                ao_sleep(DATA_TO_XDATA(&ao_sample_data));
                while (i && cal_data_ring != ao_sample_data) {
-                       accel_total += (int32_t) ao_data_accel(&ao_data_ring[cal_data_ring]);
+                       int16_t v = ao_data_accel(&ao_data_ring[cal_data_ring]);
+                       accel_total += (int32_t) v;
+                       if (v < min) min = v;
+                       if (v > max) max = v;
 #if HAS_GYRO
                        accel_along_total += (int32_t) ao_data_along(&ao_data_ring[cal_data_ring]);
                        accel_across_total += (int32_t) ao_data_across(&ao_data_ring[cal_data_ring]);
@@ -420,6 +424,7 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant
        accel_cal_across = accel_across_total >> ACCEL_CALIBRATE_SHIFT;
        accel_cal_through = accel_through_total >> ACCEL_CALIBRATE_SHIFT;
 #endif
+       printf ("total %d min %d max %d\n", accel_total, min, max);
        return accel_total >> ACCEL_CALIBRATE_SHIFT;
 }
 
@@ -557,10 +562,10 @@ ao_config_radio_rate_set(void) __reentrant
        }
        _ao_config_edit_start();
        ao_config.radio_rate = ao_cmd_lex_i;
+       _ao_config_edit_finish();
 #if HAS_TELEMETRY
        ao_telemetry_reset_interval();
 #endif
-       _ao_config_edit_finish();
 #if HAS_RADIO_RECV
        ao_radio_recv_abort();
 #endif
@@ -684,6 +689,9 @@ ao_config_radio_enable_set(void) __reentrant
        _ao_config_edit_start();
        ao_config.radio_enable = ao_cmd_lex_i;
        _ao_config_edit_finish();
+#if HAS_TELEMETRY && HAS_RADIO_RATE
+       ao_telemetry_reset_interval();
+#endif
 }
 #endif /* HAS_RADIO */
 
@@ -735,6 +743,7 @@ ao_config_aprs_set(void)
        _ao_config_edit_start();
        ao_config.aprs_interval = ao_cmd_lex_i;
        _ao_config_edit_finish();
+       ao_telemetry_reset_interval();
 }
 
 #endif /* HAS_APRS */
@@ -825,6 +834,9 @@ ao_config_tracker_set(void)
        ao_config.tracker_motion = m;
        ao_config.tracker_interval = i;
        _ao_config_edit_finish();
+#if HAS_TELEMETRY
+       ao_telemetry_reset_interval();
+#endif
 }
 #endif /* HAS_TRACKER */