Works with 8g
Fork of MMA8452 by
Revision 16:d6dde2318edc, committed 2014-03-05
- Comitter:
- ashleymills
- Date:
- Wed Mar 05 16:47:13 2014 +0000
- Parent:
- 15:7620a11149b8
- Child:
- 17:6e4232c421c0
- Commit message:
- Added data ready query commands for each independent axes.
Changed in this revision
MMA8452.cpp | Show annotated file Show diff for this revision Revisions of this file |
MMA8452.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/MMA8452.cpp Wed Mar 05 15:36:03 2014 +0000 +++ b/MMA8452.cpp Wed Mar 05 16:47:13 2014 +0000 @@ -121,14 +121,31 @@ ); } -int MMA8452::isXYZReady() { +char MMA8452::getMaskedRegister(int reg, char mask) { char rval = 0; - if(readRegister(MMA8452_STATUS,&rval)) { + if(readRegister(reg,&rval)) { return 0; } - return (rval&MMA8452_STATUS_ZYXDR_MASK); + return (rval&mask); +} + +int MMA8452::isXYZReady() { + return getMaskedRegister(MMA8452_STATUS,MMA8452_STATUS_ZYXDR_MASK)>0; +} + +int MMA8452::isXReady() { + return getMaskedRegister(MMA8452_STATUS,MMA8452_STATUS_XDR_MASK)>0; } - + +int MMA8452::isYReady() { + return getMaskedRegister(MMA8452_STATUS,MMA8452_STATUS_YDR_MASK)>0; +} + +int MMA8452::isZReady() { + return getMaskedRegister(MMA8452_STATUS,MMA8452_STATUS_ZDR_MASK)>0; +} + + int MMA8452::getDeviceID(char *dst) { return readRegister(MMA8452_WHO_AM_I,dst); }
--- a/MMA8452.h Wed Mar 05 15:36:03 2014 +0000 +++ b/MMA8452.h Wed Mar 05 16:47:13 2014 +0000 @@ -106,6 +106,9 @@ // status masks and shifts #define MMA8452_STATUS_ZYXDR_MASK 0x08 +#define MMA8452_STATUS_ZDR_MASK 0x04 +#define MMA8452_STATUS_YDR_MASK 0x02 +#define MMA8452_STATUS_XDR_MASK 0x01 class MMA8452 { @@ -244,6 +247,7 @@ int twelveBitToSigned(char *buf); int eightBitToSigned(char *buf); double convertCountToGravity(int count, int countsPerG); + char getMaskedRegister(int reg, char mask); I2C _i2c; int _frequency;