Improved eCompass with support for different sensor options and a new C++ wrapper
Dependents: KL46_eCompass KL46_eCompass_TiltCompensed_Acel-Mag Ragnarok_2ejes compass_acc ... more
Fork of Wi-Go_eCompass_Lib_V3 by
Diff: Wi-Go_eCompass_Lib_V3.h
- Revision:
- 2:15ecb3c9d22f
- Parent:
- 1:c37fee2125c6
- Child:
- 3:98d426530167
--- a/Wi-Go_eCompass_Lib_V3.h Sat Sep 07 19:53:27 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/************************************************************************************************ -* File : eCompass.h -* Date : 18/07/2013 -* Purpose : Wi-Go eCompass interface and hardware peripherals definition -* Author : Frank Vannieuwkerke -* Description: ported from Avnet Wi-Go code -* For additional information on Wi-Go please visit -* www.em.avnet.com/wi-go -* Additional info on the Freescale eCompass software is available at -* http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=E-Compass -************************************************************************************************/ -#ifndef ECOMPASS_H__ -#define ECOMPASS_H__ - -//#include "common.h" -//#include "Wi-Go_eCompass_Lib_V3.ar" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef short int16; -typedef unsigned short uint16; -typedef unsigned int uint32; -typedef unsigned char byte; - -extern void run_eCompass(void); -extern void init_eCompass(void); -extern void calibrate_eCompass(void); - -#define NED_COMPASS 1 -#define ANDROID_COMPASS 2 -#define WINDOWS_COMPASS 3 - -// Macros for constants used in fractional decimal conversion routine. -// FRAC_2d1 = 2^-1 = 0.5 -// FRAC_2d2 = 2^-2 = 0.25 etc... -#define FRAC_2d1 5000 -#define FRAC_2d2 2500 -#define FRAC_2d3 1250 -#define FRAC_2d4 625 - -// sensor scaling constants -#define FCOUNTSPERUT 10.0F // sensor specific: MAG3110 provide 10 counts / uT -#define FCOUNTSPERG 4096.0F // sensor specific: MMA8451 provide 4096 counts / g in 2g mode - -typedef struct { - // Always 1 - uint16 packet_id; - // Light sensor - int16 light; - // Counts at a 0.020MS interval when sensor data is processed - uint32 timestamp; - // Ineeger data from accelerometer - int16 acc_x, acc_y, acc_z; - // Integer data from Magnetometer - int16 mag_x, mag_y, mag_z; - // Roll, Pitch, Yaw and Compass from the eCompass algorithm - int16 roll, pitch, yaw, compass; - // Altitude and temperature - int16 alt, temp; - // Data from Accelerometer converted to floating point - float fax, fay, faz; - // Accelerometer data converted to G's - float fGax, fGay, fGaz; - // Data from Magnetometer converted to floating point - float fmx, fmy, fmz; - // Magnetometer data converted to UT's - float fUTmx, fUTmy, fUTmz; - float q0, q1, q2, q3; - -} axis6_t; - -#ifdef __cplusplus -} -#endif - -#endif \ No newline at end of file