Port of LSM303DLHC with modified registers to work with LSM303D

Dependents:   Altimu10v4

Committer:
bclaus
Date:
Mon Feb 08 17:57:22 2016 +0000
Revision:
2:8cd0c3c11b48
Parent:
0:5b930e09bd6e
update;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bclaus 0:5b930e09bd6e 1
bclaus 0:5b930e09bd6e 2 #ifndef __LSM303D_H
bclaus 0:5b930e09bd6e 3 #define __LSM303D_H
bclaus 0:5b930e09bd6e 4 #include "mbed.h"
bclaus 0:5b930e09bd6e 5
bclaus 0:5b930e09bd6e 6
bclaus 0:5b930e09bd6e 7
bclaus 0:5b930e09bd6e 8 class LSM303D {
bclaus 0:5b930e09bd6e 9 public:
bclaus 0:5b930e09bd6e 10 /** Create a new interface for an LSM303D
bclaus 0:5b930e09bd6e 11 *
bclaus 0:5b930e09bd6e 12 * @param sda is the pin for the I2C SDA line
bclaus 0:5b930e09bd6e 13 * @param scl is the pin for the I2C SCL line
bclaus 0:5b930e09bd6e 14 */
bclaus 0:5b930e09bd6e 15 LSM303D(PinName sda, PinName scl);
bclaus 0:5b930e09bd6e 16
bclaus 0:5b930e09bd6e 17
bclaus 0:5b930e09bd6e 18 /** read the raw accelerometer and compass values
bclaus 0:5b930e09bd6e 19 *
bclaus 0:5b930e09bd6e 20 * @param ax,ay,az is the accelerometer 3d vector, written by the function
bclaus 0:5b930e09bd6e 21 * @param mx,my,mz is the magnetometer 3d vector, written by the function
bclaus 0:5b930e09bd6e 22 */
bclaus 0:5b930e09bd6e 23 bool read(float *ax, float *ay, float *az, float *mx, float *my, float *mz);
bclaus 0:5b930e09bd6e 24
bclaus 0:5b930e09bd6e 25
bclaus 0:5b930e09bd6e 26 private:
bclaus 0:5b930e09bd6e 27 I2C _LSM303;
bclaus 0:5b930e09bd6e 28
bclaus 0:5b930e09bd6e 29
bclaus 0:5b930e09bd6e 30 float ax, ay, az;
bclaus 0:5b930e09bd6e 31 float mx, my, mz;
bclaus 0:5b930e09bd6e 32
bclaus 0:5b930e09bd6e 33 bool write_reg(int addr_i2c,int addr_reg, char v);
bclaus 0:5b930e09bd6e 34 bool read_reg(int addr_i2c,int addr_reg, char *v);
bclaus 0:5b930e09bd6e 35 bool recv(char sad, char sub, char *buf, int length);
bclaus 0:5b930e09bd6e 36 };
bclaus 0:5b930e09bd6e 37
bclaus 0:5b930e09bd6e 38 #endif