Avnet - Precompiled eCompass library for the Wi-Go board

Dependents:   Wi-Go_IOT_Demo IoT_World_Hackathon_WiGo_NSP_Demo Wi-Go_IOT_Demo_MKII

Committer:
frankvnk
Date:
Fri Sep 06 09:02:26 2013 +0000
Revision:
0:6296487369d8
Child:
1:c37fee2125c6
First release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frankvnk 0:6296487369d8 1 /********************************************************************
frankvnk 0:6296487369d8 2 * File : eCompass.h
frankvnk 0:6296487369d8 3 * Date : 18/07/2013
frankvnk 0:6296487369d8 4 * Purpose : Wi-Go interface and hardware peripherals definition
frankvnk 0:6296487369d8 5 * Author : Frank Vannieuwkerke
frankvnk 0:6296487369d8 6 * Description: ported from Avnet Wi-Go Board
frankvnk 0:6296487369d8 7 *********************************************************************/
frankvnk 0:6296487369d8 8 #ifndef ECOMPASS_H__
frankvnk 0:6296487369d8 9 #define ECOMPASS_H__
frankvnk 0:6296487369d8 10
frankvnk 0:6296487369d8 11 //#include "common.h"
frankvnk 0:6296487369d8 12 //#include "Wi-Go_eCompass_Lib_V3.ar"
frankvnk 0:6296487369d8 13
frankvnk 0:6296487369d8 14 #ifdef __cplusplus
frankvnk 0:6296487369d8 15 extern "C" {
frankvnk 0:6296487369d8 16 #endif
frankvnk 0:6296487369d8 17
frankvnk 0:6296487369d8 18 typedef short int16;
frankvnk 0:6296487369d8 19 typedef unsigned short uint16;
frankvnk 0:6296487369d8 20 typedef unsigned int uint32;
frankvnk 0:6296487369d8 21 typedef unsigned char byte;
frankvnk 0:6296487369d8 22
frankvnk 0:6296487369d8 23 extern void run_eCompass(void);
frankvnk 0:6296487369d8 24 extern void init_eCompass(void);
frankvnk 0:6296487369d8 25 extern void calibrate_eCompass(void);
frankvnk 0:6296487369d8 26
frankvnk 0:6296487369d8 27 #define NED_COMPASS 1
frankvnk 0:6296487369d8 28 #define ANDROID_COMPASS 2
frankvnk 0:6296487369d8 29 #define WINDOWS_COMPASS 3
frankvnk 0:6296487369d8 30
frankvnk 0:6296487369d8 31 // Macros for constants used in fractional decimal conversion routine.
frankvnk 0:6296487369d8 32 // FRAC_2d1 = 2^-1 = 0.5
frankvnk 0:6296487369d8 33 // FRAC_2d2 = 2^-2 = 0.25 etc...
frankvnk 0:6296487369d8 34 #define FRAC_2d1 5000
frankvnk 0:6296487369d8 35 #define FRAC_2d2 2500
frankvnk 0:6296487369d8 36 #define FRAC_2d3 1250
frankvnk 0:6296487369d8 37 #define FRAC_2d4 625
frankvnk 0:6296487369d8 38
frankvnk 0:6296487369d8 39 // sensor scaling constants
frankvnk 0:6296487369d8 40 #define FCOUNTSPERUT 10.0F // sensor specific: MAG3110 provide 10 counts / uT
frankvnk 0:6296487369d8 41 #define FCOUNTSPERG 4096.0F // sensor specific: MMA8451 provide 4096 counts / g in 2g mode
frankvnk 0:6296487369d8 42
frankvnk 0:6296487369d8 43 typedef struct {
frankvnk 0:6296487369d8 44 // Always 1
frankvnk 0:6296487369d8 45 uint16 packet_id;
frankvnk 0:6296487369d8 46 // Light sensor
frankvnk 0:6296487369d8 47 int16 light;
frankvnk 0:6296487369d8 48 // Counts at a 0.020MS interval when sensor data is processed
frankvnk 0:6296487369d8 49 uint32 timestamp;
frankvnk 0:6296487369d8 50 // Ineeger data from accelerometer
frankvnk 0:6296487369d8 51 int16 acc_x, acc_y, acc_z;
frankvnk 0:6296487369d8 52 // Integer data from Magnetometer
frankvnk 0:6296487369d8 53 int16 mag_x, mag_y, mag_z;
frankvnk 0:6296487369d8 54 // Roll, Pitch, Yaw and Compass from the eCompass algorithm
frankvnk 0:6296487369d8 55 int16 roll, pitch, yaw, compass;
frankvnk 0:6296487369d8 56 // Altitude and temperature
frankvnk 0:6296487369d8 57 int16 alt, temp;
frankvnk 0:6296487369d8 58 // Data from Accelerometer converted to floating point
frankvnk 0:6296487369d8 59 float fax, fay, faz;
frankvnk 0:6296487369d8 60 // Accelerometer data converted to G's
frankvnk 0:6296487369d8 61 float fGax, fGay, fGaz;
frankvnk 0:6296487369d8 62 // Data from Magnetometer converted to floating point
frankvnk 0:6296487369d8 63 float fmx, fmy, fmz;
frankvnk 0:6296487369d8 64 // Magnetometer data converted to UT's
frankvnk 0:6296487369d8 65 float fUTmx, fUTmy, fUTmz;
frankvnk 0:6296487369d8 66 float q0, q1, q2, q3;
frankvnk 0:6296487369d8 67
frankvnk 0:6296487369d8 68 } axis6_t;
frankvnk 0:6296487369d8 69
frankvnk 0:6296487369d8 70 #ifdef __cplusplus
frankvnk 0:6296487369d8 71 }
frankvnk 0:6296487369d8 72 #endif
frankvnk 0:6296487369d8 73
frankvnk 0:6296487369d8 74 #endif