Works with 8g
Fork of MMA8452 by
Diff: MMA8452.cpp
- Revision:
- 5:b3d0abd97e55
- Parent:
- 4:27aa3cd43234
- Child:
- 6:f6bde04bf8be
- Child:
- 7:8aa5123d403f
diff -r 27aa3cd43234 -r b3d0abd97e55 MMA8452.cpp --- 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() {