Use accelerometer to interrupt.

Dependencies:   mbed SDFileSystem

Fork of shomberg_hw_7 by Russell Shomberg

Revision:
23:61d87ea09c26
Parent:
21:c95c6b9e9377
Child:
28:a59485b1626b
diff -r c3c335503260 -r 61d87ea09c26 MMA8452Q.cpp
--- a/MMA8452Q.cpp	Tue Nov 06 14:41:56 2018 +0000
+++ b/MMA8452Q.cpp	Wed Nov 07 15:29:47 2018 +0000
@@ -4,11 +4,15 @@
 #include "mbed.h"
 #include "MMA8452Q.h"
 
+
+//InterruptIn accel_interrupt(PIN_INTERRUPT);
+
+
 // Constructor
 MMA8452Q::MMA8452Q(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr)
 {
     // Initialize members
-    scale = DEFAULT_FSR;    
+    scale = DEFAULT_FSR;
 }
 
 // Destructor
@@ -154,7 +158,7 @@
     return data;
 }
 
-// Raw write data to a register over I2C    
+// Raw write data to a register over I2C
 void MMA8452Q::writeRegister(uint8_t reg, uint8_t data)
 {
     uint8_t dev_addr;
@@ -173,3 +177,18 @@
     m_i2c.write(data);
     m_i2c.stop();
 }
+
+// Set the interupt type, pin, and scale
+void MMA8452Q::setInterrupt()
+{
+    // write all registers associated with interrupt
+    //REG_TRANSIENT_CFG
+    //REG_TRANSIENT_SRC
+    writeRegister(REG_CTRL_REG4, 0x20); // turn on transient flag
+    writeRegister(REG_CTRL_REG5, 0x20); // route transient interrupt to pin1
+    writeRegister(REG_TRANSIENT_CFG, 0x1E); // detection turned on for x,y,z and reading source clears flag
+    // writeRegister(REG_TRANSIENT_THS, ); //
+    // writeRegister(REG_TRANSIENT_COUNT, ); //
+
+}
+