Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LSM6DS3 by
Revision 2:ed14e6196255, committed 2016-06-21
- Comitter:
- 5hel2l2y
- Date:
- Tue Jun 21 20:51:25 2016 +0000
- Parent:
- 1:924c7dea286e
- Child:
- 3:b705b62fbc1a
- Commit message:
- Adding interrupt.
Changed in this revision
| LSM6DS3.cpp | Show annotated file Show diff for this revision Revisions of this file |
| LSM6DS3.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/LSM6DS3.cpp Mon Jun 20 19:15:31 2016 +0000
+++ b/LSM6DS3.cpp Tue Jun 21 20:51:25 2016 +0000
@@ -44,6 +44,9 @@
setAccelODR(aODR); // Set the accel data rate.
setAccelScale(aScale); // Set the accel range.
+ // Interrupt initialization stuff;
+ initIntr();
+
// Once everything is initialized, return the WHO_AM_I registers we read:
return xgTest;
}
@@ -74,6 +77,27 @@
i2c.write(xgAddress, cmd, 4);
}
+void LSM6DS3::initIntr()
+{
+ char cmd[2];
+
+ cmd[0] = TAP_CFG;
+ cmd[1] = 0x0E;
+ i2c.write(xgAddress, cmd, 2);
+ cmd[0] = TAP_THS_6D;
+ cmd[1] = 0x03;
+ i2c.write(xgAddress, cmd, 2);
+ cmd[0] = INT_DUR2;
+ cmd[1] = 0x7F;
+ i2c.write(xgAddress, cmd, 2);
+ cmd[0] = WAKE_UP_THS;
+ cmd[1] = 0x80;
+ i2c.write(xgAddress, cmd, 2);
+ cmd[0] = MD1_CFG;
+ cmd[1] = 0x48;
+ i2c.write(xgAddress, cmd, 2);
+}
+
void LSM6DS3::readAccel()
{
// The data we are going to read from the accel
@@ -112,6 +136,17 @@
az = az_raw * aRes;
}
+void LSM6DS3::readIntr()
+{
+ char data[1];
+ char subAddress = TAP_SRC;
+
+ i2c.write(xgAddress, &subAddress, 1, true);
+ i2c.read(xgAddress, data, 1);
+
+ intr = (float)data[0];
+}
+
void LSM6DS3::readTemp()
{
// The data we are going to read from the temp
--- a/LSM6DS3.h Mon Jun 20 19:15:31 2016 +0000
+++ b/LSM6DS3.h Tue Jun 21 20:51:25 2016 +0000
@@ -150,6 +150,8 @@
A_BW_105 = 0x6, // 105 Hz (0x6)
A_BW_50 = 0x7 // 50 Hz (0x7)
};
+
+
// We'll store the gyro, and accel, readings in a series of
// public class variables. Each sensor gets three variables -- one for each
@@ -164,6 +166,7 @@
float gx, gy, gz;
float ax, ay, az;
float temperature_c, temperature_f; // temperature in celcius and fahrenheit
+ float intr;
/** LSM6DS3 -- LSM6DS3 class constructor
@@ -217,6 +220,9 @@
*/
void readTemp();
+ /** Read Interrupt **/
+ void readIntr();
+
/** setGyroScale() -- Set the full-scale range of the gyroscope.
* This function can be called to set the scale of the gyroscope to
* 245, 500, or 2000 degrees per second.
@@ -281,6 +287,9 @@
*/
void initAccel();
+ /** Setup Interrupt **/
+ void initIntr();
+
/** calcgRes() -- Calculate the resolution of the gyroscope.
* This function will set the value of the gRes variable. gScale must
* be set prior to calling this function.
