summaryrefslogtreecommitdiff
path: root/src/kernel
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2018-10-19 08:12:22 -0700
committerKeith Packard <keithp@keithp.com>2018-10-19 08:37:56 -0700
commit80affca535c5c43a5d9963dfafc74f9675c9b155 (patch)
tree7d479a5246552cc5e86a216099d1dc06361f5419 /src/kernel
parentfacf790f469df374257440ba9482321cbab7cecb (diff)
altos: Create ao_data_fill shared function
This fills a data ring entry with all of the current sensor values other than the ADC. It is used in all of the adc completion functions. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/ao_data.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/kernel/ao_data.h b/src/kernel/ao_data.h
index f88b30c9..97f7e06e 100644
--- a/src/kernel/ao_data.h
+++ b/src/kernel/ao_data.h
@@ -400,4 +400,32 @@ typedef int16_t ao_mag_t; /* in raw sample units */
#endif
+#ifdef AO_DATA_RING
+
+static inline void
+ao_data_fill(int head) {
+ if (ao_data_present == AO_DATA_ALL) {
+#if HAS_MS5607
+ ao_data_ring[head].ms5607_raw = ao_ms5607_current;
+#endif
+#if HAS_MMA655X
+ ao_data_ring[head].mma655x = ao_mma655x_current;
+#endif
+#if HAS_HMC5883
+ ao_data_ring[head].hmc5883 = ao_hmc5883_current;
+#endif
+#if HAS_MPU6000
+ ao_data_ring[head].mpu6000 = ao_mpu6000_current;
+#endif
+#if HAS_MPU9250
+ ao_data_ring[head].mpu9250 = ao_mpu9250_current;
+#endif
+ ao_data_ring[head].tick = ao_tick_count;
+ ao_data_head = ao_data_ring_next(head);
+ ao_wakeup((void *) &ao_data_head);
+ }
+}
+
+#endif
+
#endif /* _AO_DATA_H_ */