Skip to content

Commit c7a5eaa

Browse files
author
microbuilder
committed
Added essential register values
1 parent e5f1945 commit c7a5eaa

File tree

2 files changed

+60
-26
lines changed

2 files changed

+60
-26
lines changed

Adafruit_LSM9DS0.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
// default
2121
Adafruit_LSM9DS0::Adafruit_LSM9DS0() {
2222
_i2c = true;
23-
2423
}
2524

2625
Adafruit_LSM9DS0::Adafruit_LSM9DS0(int8_t xmcs, int8_t gcs) {
@@ -45,7 +44,6 @@ bool Adafruit_LSM9DS0::begin()
4544
{
4645
if (_i2c) {
4746
Wire.begin();
48-
4947
} else if (_clk == -1) {
5048
// Hardware SPI
5149
pinMode(_csxm, OUTPUT);
@@ -75,7 +73,7 @@ bool Adafruit_LSM9DS0::begin()
7573
if (id != LSM9DS0_XM_ID)
7674
return false;
7775

78-
id = read8(GYROTYPE, LSM9DS0_REGISTER_WHO_AM_I_G);
76+
id = read8(GYROTYPE, LSM9DS0_REGISTER_WHO_AM_I_G);
7977
Serial.print ("G whoami: 0x");
8078
Serial.println(id, HEX);
8179
if (id != LSM9DS0_G_ID)
@@ -177,7 +175,7 @@ void Adafruit_LSM9DS0::read()
177175
magData.orientation = 0.0;
178176
}
179177

180-
void Adafruit_LSM9DS0::setMagGain(lsm9ds0MagGain gain)
178+
void Adafruit_LSM9DS0::setMagGain(lsm9ds0MagGain_t gain)
181179
{
182180

183181
}

Adafruit_LSM9DS0.h

Lines changed: 58 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -75,52 +75,88 @@ class Adafruit_LSM9DS0
7575
LSM9DS0_REGISTER_OUT_Z_L_A = 0x2C,
7676
LSM9DS0_REGISTER_OUT_Z_H_A = 0x2D,
7777
} lsm9ds0MagAccelRegisters_t;
78+
79+
typedef enum
80+
{
81+
LSM9DS0_ACCELRANGE_2G = (0b000 << 3),
82+
LSM9DS0_ACCELRANGE_4G = (0b001 << 3),
83+
LSM9DS0_ACCELRANGE_6G = (0b010 << 3),
84+
LSM9DS0_ACCELRANGE_8G = (0b011 << 3),
85+
LSM9DS0_ACCELRANGE_16G = (0b100 << 3)
86+
} lsm9ds0AccelRange_t;
87+
88+
typedef enum
89+
{
90+
LSM9DS0_ACCELDATARATE_POWERDOWN = (0b0000 << 4),
91+
LSM9DS0_ACCELDATARATE_3_125HZ = (0b0001 << 4),
92+
LSM9DS0_ACCELDATARATE_6_25HZ = (0b0010 << 4),
93+
LSM9DS0_ACCELDATARATE_12_5HZ = (0b0011 << 4),
94+
LSM9DS0_ACCELDATARATE_25HZ = (0b0100 << 4),
95+
LSM9DS0_ACCELDATARATE_50HZ = (0b0101 << 4),
96+
LSM9DS0_ACCELDATARATE_100HZ = (0b0110 << 4),
97+
LSM9DS0_ACCELDATARATE_200HZ = (0b0111 << 4),
98+
LSM9DS0_ACCELDATARATE_400HZ = (0b1000 << 4),
99+
LSM9DS0_ACCELDATARATE_800HZ = (0b1001 << 4),
100+
LSM9DS0_ACCELDATARATE_1600HZ = (0b1010 << 4)
101+
} lm9ds0AccelDataRate_t;
78102

79103
typedef enum
80104
{
81-
/*
82-
LSM9DS0_MAGGAIN_1_3 = 0x20, // +/- 1.3
83-
LSM9DS0_MAGGAIN_1_9 = 0x40, // +/- 1.9
84-
LSM9DS0_MAGGAIN_2_5 = 0x60, // +/- 2.5
85-
LSM9DS0_MAGGAIN_4_0 = 0x80, // +/- 4.0
86-
LSM9DS0_MAGGAIN_4_7 = 0xA0, // +/- 4.7
87-
LSM9DS0_MAGGAIN_5_6 = 0xC0, // +/- 5.6
88-
LSM9DS0_MAGGAIN_8_1 = 0xE0 // +/- 8.1
89-
*/
90-
} lsm9ds0MagGain;
105+
LSM9DS0_MAGGAIN_2GAUSS = (0b00 << 5), // +/- 2 gauss
106+
LSM9DS0_MAGGAIN_4GAUSS = (0b01 << 5), // +/- 4 gauss
107+
LSM9DS0_MAGGAIN_8GAUSS = (0b10 << 5), // +/- 8 gauss
108+
LSM9DS0_MAGGAIN_12GAUSS = (0b11 << 5) // +/- 12 gauss
109+
} lsm9ds0MagGain_t;
110+
111+
typedef enum
112+
{
113+
LSM9DS0_MAGDATARATE_3_125HZ = (0b000 << 2),
114+
LSM9DS0_MAGDATARATE_6_25HZ = (0b001 << 2),
115+
LSM9DS0_MAGDATARATE_12_5HZ = (0b010 << 2),
116+
LSM9DS0_MAGDATARATE_25HZ = (0b011 << 2),
117+
LSM9DS0_MAGDATARATE_50HZ = (0b100 << 2),
118+
LSM9DS0_MAGDATARATE_100HZ = (0b101 << 2)
119+
} lsm9ds0MagDataRate_t;
120+
121+
typedef enum
122+
{
123+
LSM9DS0_GYROSCALE_245DPS = (0b00 << 4), // +/- 245 degrees per second rotation
124+
LSM9DS0_GYROSCALE_500DPS = (0b01 << 4), // +/- 500 degrees per second rotation
125+
LSM9DS0_GYROSCALE_2000DPS = (0b10 << 4) // +/- 2000 degrees per second rotation
126+
} lsm9ds0GyroScale_t;
91127

92128
typedef struct lsm9ds0AccelData_s
93129
{
94130
float x;
95131
float y;
96132
float z;
97-
} lsm9ds0AccelData;
133+
} lsm9ds0AccelData_t;
98134

99135
typedef struct lsm9ds0GyroData_s
100136
{
101137
float x;
102138
float y;
103139
float z;
104-
} lsm9ds0GyroData;
140+
} lsm9ds0GyroData_t;
105141

106142
typedef struct lsm9ds0MagData_s
107143
{
108144
float x;
109145
float y;
110146
float z;
111147
float orientation;
112-
} lsm9ds0MagData;
148+
} lsm9ds0MagData_t;
113149

114-
lsm9ds0AccelData accelData; // Last read accelerometer data will be available here
115-
lsm9ds0MagData magData; // Last read magnetometer data will be available here
116-
lsm9ds0GyroData gyroData; // Last read gyroscope data will be available here
150+
lsm9ds0AccelData_t accelData; // Last read accelerometer data will be available here
151+
lsm9ds0MagData_t magData; // Last read magnetometer data will be available here
152+
lsm9ds0GyroData_t gyroData; // Last read gyroscope data will be available here
117153

118-
bool begin ( void );
119-
void read ( void );
120-
void setMagGain ( lsm9ds0MagGain gain );
121-
void write8 ( boolean type, byte reg, byte value );
122-
byte read8 ( boolean type, byte reg );
123-
uint8_t spixfer ( uint8_t data );
154+
bool begin ( void );
155+
void read ( void );
156+
void setMagGain ( lsm9ds0MagGain_t gain );
157+
void write8 ( boolean type, byte reg, byte value );
158+
byte read8 ( boolean type, byte reg );
159+
uint8_t spixfer ( uint8_t data );
124160

125161
private:
126162
boolean _i2c;

0 commit comments

Comments
 (0)