diff options
author | Keith Packard <keithp@keithp.com> | 2012-06-02 17:09:00 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-06-02 17:12:27 -0700 |
commit | 9aa7993ee31bdfd6890ad7262a0375c07464ee76 (patch) | |
tree | c2fc7cf9e4e945b122eaa53d4e9788a0c171f663 /src/core | |
parent | 69a8907ecbb7ca0e8526aeea0dc7490a191a0f8b (diff) |
altos: Intgrate hmc5883 sensor into adc ring
Creates a task to poll the mag sensor and place the data into the
sensor data ring.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/ao_data.h | 7 | ||||
-rw-r--r-- | src/core/ao_log_mega.c | 4 |
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; |