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 Jim Carver

Files at this revision

API Documentation at this revision

Comitter:
JimCarver
Date:
Mon Apr 07 21:02:15 2014 +0000
Parent:
1:c37fee2125c6
Child:
3:98d426530167
Commit message:
Version 1.0

Changed in this revision

Wi-Go_eCompass_Lib_V3.ar Show diff for this revision Revisions of this file
Wi-Go_eCompass_Lib_V3.h Show diff for this revision Revisions of this file
eCompass_Lib_V3.ar Show annotated file Show diff for this revision Revisions of this file
eCompass_Lib_V3.h Show annotated file Show diff for this revision Revisions of this file
Binary file Wi-Go_eCompass_Lib_V3.ar has changed
--- 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
Binary file eCompass_Lib_V3.ar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eCompass_Lib_V3.h	Mon Apr 07 21:02:15 2014 +0000
@@ -0,0 +1,78 @@
+/************************************************************************************************
+* 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