Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / ao_log.c
index 8666482b51ab6da82b086cdf9b5c1423cc26b957..099c5f6ff9683aebf4a7048f2ed212e71578f60e 100644 (file)
@@ -42,8 +42,8 @@ ao_log_data(__xdata struct ao_log_record *log) __reentrant
        log->csum = 0;
        log->csum = ao_log_csum((__xdata uint8_t *) log);
        ao_mutex_get(&ao_log_mutex); {
-               if (ao_log_current_pos >= ao_log_end_pos)
-                       ao_log_running = 0;
+               if (ao_log_current_pos >= ao_log_end_pos && ao_log_running)
+                       ao_log_stop();
                if (ao_log_running) {
                        wrote = 1;
                        ao_storage_write(ao_log_current_pos,
@@ -99,10 +99,10 @@ ao_log(void)
        /* Write the whole contents of the ring to the log
         * when starting up.
         */
-       ao_log_adc_pos = ao_adc_ring_next(ao_adc_head);
+       ao_log_adc_pos = ao_adc_ring_next(ao_flight_adc);
        for (;;) {
                /* Write samples to EEPROM */
-               while (ao_log_adc_pos != ao_adc_head) {
+               while (ao_log_adc_pos != ao_flight_adc) {
                        log.type = AO_LOG_SENSOR;
                        log.tick = ao_adc_ring[ao_log_adc_pos].tick;
                        log.u.sensor.accel = ao_adc_ring[ao_log_adc_pos].accel;