diff options
| author | Bdale Garbee <bdale@gag.com> | 2013-12-19 01:38:40 -0700 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2013-12-19 01:38:40 -0700 | 
| commit | 575bbaf976c5840fd0e308549c45a466fdec1352 (patch) | |
| tree | 11bfb498348bf7687bffc24699c4b1a998988ee4 /src/core/ao_data.h | |
| parent | b825116df173b77e2cab217a7b76112c742f9279 (diff) | |
| parent | bc3610d8cecbfed40c62d4dcb93fc9a4d2a7c9e3 (diff) | |
Merge branch 'branch-1.3' into debian
Conflicts:
	ChangeLog
	altoslib/AltosRecordMM.java
	altosui/Makefile.am
	altosui/altos-windows.nsi.in
	configure.ac
	debian/changelog
	debian/control
	doc/Makefile
	doc/altusmetrum.xsl
	doc/release-notes-1.2.1.xsl
	doc/release-notes-1.2.xsl
Diffstat (limited to 'src/core/ao_data.h')
| -rw-r--r-- | src/core/ao_data.h | 28 | 
1 files changed, 25 insertions, 3 deletions
diff --git a/src/core/ao_data.h b/src/core/ao_data.h index 7e2f85d8..e1d8a139 100644 --- a/src/core/ao_data.h +++ b/src/core/ao_data.h @@ -18,6 +18,8 @@  #ifndef _AO_DATA_H_  #define _AO_DATA_H_ +#define GRAVITY 9.80665 +  #if HAS_ADC  #define AO_DATA_ADC	(1 << 0)  #else @@ -82,6 +84,10 @@ struct ao_data {  #define ao_data_ring_next(n)	(((n) + 1) & (AO_DATA_RING - 1))  #define ao_data_ring_prev(n)	(((n) - 1) & (AO_DATA_RING - 1)) +/* Get a copy of the last complete sample set */ +void +ao_data_get(__xdata struct ao_data *packet); +  extern volatile __xdata struct ao_data	ao_data_ring[AO_DATA_RING];  extern volatile __data uint8_t		ao_data_head;  extern volatile __data uint8_t		ao_data_present; @@ -97,7 +103,7 @@ extern volatile __data uint8_t		ao_data_count;   * signaled by the timer tick   */  #define AO_DATA_WAIT() do {				\ -		ao_sleep((void *) &ao_data_count);	\ +		ao_sleep(DATA_TO_XDATA ((void *) &ao_data_count));	\  	} while (0)  #endif /* AO_DATA_RING */ @@ -268,7 +274,11 @@ typedef int16_t accel_t;  /* MMA655X is hooked up so that positive values represent negative acceleration */  #define ao_data_accel(packet)			((packet)->mma655x) +#if AO_MMA655X_INVERT +#define ao_data_accel_cook(packet)		(4095 - (packet)->mma655x) +#else  #define ao_data_accel_cook(packet)		((packet)->mma655x) +#endif  #define ao_data_set_accel(packet, accel)	((packet)->mma655x = (accel))  #define ao_data_accel_invert(accel)		(4095 - (accel)) @@ -292,8 +302,8 @@ typedef int16_t accel_t;  #define HAS_GYRO	1 -typedef int16_t	gyro_t; -typedef int32_t angle_t; +typedef int16_t	gyro_t;		/* in raw sample units */ +typedef int16_t angle_t;	/* in degrees */  /* Y axis is aligned with the direction of motion (along) */  /* X axis is aligned in the other board axis (across) */ @@ -309,4 +319,16 @@ typedef int32_t angle_t;  #endif +#if !HAS_MAG && HAS_HMC5883 + +#define HAS_MAG		1 + +typedef int16_t ao_mag_t;		/* in raw sample units */ + +#define ao_data_mag_along(packet)	((packet)->hmc5883.x) +#define ao_data_mag_across(packet)	((packet)->hmc5883.y) +#define ao_data_mag_through(packet)	((packet)->hmc5883.z) + +#endif +  #endif /* _AO_DATA_H_ */  | 
