Code for an autonomous plane I'm building. Includes process scheduling, process communication, and hardware sensor interfacing (via I2C). NOTE: currently in development, source code will be updated frequently.

Dependencies:   mbed

Revision:
2:452dd766d212
Parent:
0:0c627ff4c5ed
Child:
3:f9e18a9cd9af
--- a/sensor.h	Wed Oct 30 22:51:33 2013 +0000
+++ b/sensor.h	Fri Nov 01 00:48:06 2013 +0000
@@ -1,35 +1,34 @@
 #ifndef SENSOR_H
 #define SENSOR_H
 
+#define DEBUG 1
+
 #include "mbed.h"
 
 
 
-#define accel_w 0x3A
-#define accel_r 0x3B
-#define ACCEL_X 0x32 // x: 0x32,0x33 y: 0x34,0x35 z: 0x36,0x37 Little Endian!!! (x = 0x33<<8|0x22), etc...
-#define ACCEL_Z
+#define accel_w 0xA6
+#define ACCEL_X 0x32 // x: 0x32,0x33 y: 0x34,0x35 z: 0x36,0x37 Little Endian!!! (x = 0x33<<8|0x22). 2's complement 16bit
+#define ACCEL_POWER_CTL 0x2D
 #define gyro_w 0xD0
-#define gyro_r 0xD1
+#define GYRO_X 0x28 // x: 0x28,0x29 y: 0x2A,0x2B z: 0x2C,0x2D Little Endian! (x = 0x28<<8|0x22). 2's complement 16bit
+#define GYRO_CTRL_REG1 0x20
 #define compass_w 0x3C
 #define compass_r 0x3D
 #define barometer_w 0xEE
 #define barometer_r 0xEF
 
-struct accel
+struct sensor
 {
-    int ax, ay, az;
+    int16_t ax, ay, az;
+    int16_t gx, gy, gz;
     char raw_data[6];
 };
 
-struct gyro
-{
-    int gy, gx, gz;
-};
-
 struct config
 {
     int frequency;
+    int accel_resolution;
 };
 
 
@@ -39,17 +38,22 @@
 
 int write(char addr, char reg, char *buf, int n);
 
-int read_accelerometer(struct accel* s);
+int read_accelerometer(struct sensor* s);
+int accelerometer_standby();
+int accelerometer_measure();
 
-void read_gyro(struct gyro* s);
+int read_gyro(struct sensor* s);
+int gyro_turnon();
+int gyro_turnoff();
+
 int read_compass(void);
 int read_barometer(void);
 
-void config_accelerometer(void);
-void config_gyro(void);
+int config_accelerometer(void);
+int config_gyro(void);
 void config_compass(void);
 void config_barometer(void);
 
-void config_gy80(struct config *c);
+int config_gy80(struct config *c);
 
 #endif //SENSOR_H
\ No newline at end of file