imu rev1
Fork of AIviate by
Diff: sensor.h
- Revision:
- 2:452dd766d212
- Parent:
- 0:0c627ff4c5ed
- Child:
- 3:f9e18a9cd9af
diff -r 1abb115c2005 -r 452dd766d212 sensor.h --- 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