This is a simple device driver for the 3 axis accelerometer MMA8452 that works with mbed.

Dependents:   MMA8452_test S05APP3_routeur

Revision:
5:b3d0abd97e55
Parent:
4:27aa3cd43234
Child:
6:8aa5123d403f
--- a/MMA8452.cpp	Wed Oct 16 16:26:26 2013 +0000
+++ b/MMA8452.cpp	Wed Oct 16 18:55:16 2013 +0000
@@ -57,6 +57,39 @@
 }
 
 
+// Get 'Fast Read Mode' called F_READ. If bit 1 is set '1' then F_READ is active. Fast read will skip LSB when reading xyz
+// resisters from 0x01 to 0x06. When F_READ is '0' then all 6 registers will be read.
+
+int Accelerometer_MMA8452::get_CTRL_Reg1(int& CTRL_Reg)
+{
+{
+    char mcu_address = (MMA8452_ADDRESS<<1);
+    m_i2c.start();
+    if( m_i2c.write( mcu_address & 0xFE) == 0)          // just good practice to force bit 1 to a '0' by ANDing with 0xFE
+    {
+        return 1;                                       // we failed to write the mcu address on the bus to initiate dialogue 
+    }
+    if( m_i2c.write( CTRL_REG_1) == 0) 
+    {
+        return 1;                                       // we failed to write 'status' to the chip
+    }
+    m_i2c.start();
+    if( m_i2c.write( mcu_address | 0x01) == 0)          // this is asking to read the slave mcu address - even though it's a 'write' method!!! Crap API...
+    {
+        return 1;                                       // we failed to request a read from that mcu - this really is just writing the mcu vaule on the bus
+    }
+    CTRL_Reg  = m_i2c.read(0);
+    m_i2c.stop();
+    return 0;
+    
+
+}
+
+
+
+
+}
+
 // Setting the control register bit 1 to true to activate the MMA8452
 int Accelerometer_MMA8452::standby()
 {