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.
Diff: sensor.h
- Revision:
- 0:0c627ff4c5ed
- Child:
- 2:452dd766d212
diff -r 000000000000 -r 0c627ff4c5ed sensor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sensor.h Wed Oct 30 02:31:43 2013 +0000 @@ -0,0 +1,55 @@ +#ifndef SENSOR_H +#define SENSOR_H + +#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 gyro_w 0xD0 +#define gyro_r 0xD1 +#define compass_w 0x3C +#define compass_r 0x3D +#define barometer_w 0xEE +#define barometer_r 0xEF + +struct accel +{ + int ax, ay, az; + char raw_data[6]; +}; + +struct gyro +{ + int gy, gx, gz; +}; + +struct config +{ + int frequency; +}; + + +char set_i2c_pointer(char addr, char reg); + +int read(char addr, char reg, char *buf, int n); + +int write(char addr, char reg, char *buf, int n); + +int read_accelerometer(struct accel* s); + +void read_gyro(struct gyro* s); +int read_compass(void); +int read_barometer(void); + +void config_accelerometer(void); +void config_gyro(void); +void config_compass(void); +void config_barometer(void); + +void config_gy80(struct config *c); + +#endif //SENSOR_H \ No newline at end of file