summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/ao_data.h7
-rw-r--r--src/core/ao_log_mega.c4
2 files changed, 11 insertions, 0 deletions
diff --git a/src/core/ao_data.h b/src/core/ao_data.h
index 83f8df59..502df6c9 100644
--- a/src/core/ao_data.h
+++ b/src/core/ao_data.h
@@ -26,6 +26,10 @@
#include <ao_mpu6000.h>
#endif
+#if HAS_HMC5883
+#include <ao_hmc5883.h>
+#endif
+
struct ao_data {
uint16_t tick;
#if HAS_ADC
@@ -37,6 +41,9 @@ struct ao_data {
#if HAS_MPU6000
struct ao_mpu6000_sample mpu6000;
#endif
+#if HAS_HMC5883
+ struct ao_hmc5883_sample hmc5883;
+#endif
};
#define ao_data_ring_next(n) (((n) + 1) & (AO_DATA_RING - 1))
diff --git a/src/core/ao_log_mega.c b/src/core/ao_log_mega.c
index 404e6bf7..68e2af49 100644
--- a/src/core/ao_log_mega.c
+++ b/src/core/ao_log_mega.c
@@ -120,6 +120,10 @@ ao_log(void)
log.u.sensor.gyro_x = ao_data_ring[ao_log_data_pos].mpu6000.gyro_x;
log.u.sensor.gyro_y = ao_data_ring[ao_log_data_pos].mpu6000.gyro_y;
log.u.sensor.gyro_z = ao_data_ring[ao_log_data_pos].mpu6000.gyro_z;
+ log.u.sensor.mag_x = ao_data_ring[ao_log_data_pos].hmc5883.x;
+ log.u.sensor.mag_y = ao_data_ring[ao_log_data_pos].hmc5883.y;
+ log.u.sensor.mag_z = ao_data_ring[ao_log_data_pos].hmc5883.z;
+ log.u.sensor.accel = ao_data_ring[ao_log_data_pos].adc.accel;
ao_log_mega(&log);
if (ao_log_state <= ao_flight_coast)
next_sensor = log.tick + AO_SENSOR_INTERVAL_ASCENT;