Use accelerometer to interrupt.
Dependencies: mbed SDFileSystem
Fork of shomberg_hw_7 by
Diff: MMA8452Q.cpp
- Revision:
- 23:61d87ea09c26
- Parent:
- 21:c95c6b9e9377
- Child:
- 28:a59485b1626b
--- 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, ); // + +} +