thisone
Fork of MMA8451Q8 by
Revision 3:db7126dbd63f, committed 2012-10-12
- Comitter:
- chris
- Date:
- Fri Oct 12 11:30:34 2012 +0000
- Parent:
- 2:a077541cbadc
- Child:
- 4:c4d879a39775
- Commit message:
- Changed the axis readings return normalised signed float; Changed Hello World program to adjust RGB LED
Changed in this revision
MMA8451Q.cpp | Show annotated file Show diff for this revision Revisions of this file |
MMA8451Q.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/MMA8451Q.cpp Thu Oct 11 14:28:23 2012 +0000 +++ b/MMA8451Q.cpp Fri Oct 12 11:30:34 2012 +0000 @@ -40,19 +40,19 @@ return who_am_i; } -int16_t MMA8451Q::getAccX() { - return getAccAxis(REG_OUT_X_MSB); +float MMA8451Q::getAccX() { + return (float(getAccAxis(REG_OUT_X_MSB))/4096.0); } -int16_t MMA8451Q::getAccY() { - return getAccAxis(REG_OUT_Y_MSB); +float MMA8451Q::getAccY() { + return (float(getAccAxis(REG_OUT_Y_MSB))/4096.0); } -int16_t MMA8451Q::getAccZ() { - return getAccAxis(REG_OUT_Z_MSB); +float MMA8451Q::getAccZ() { + return (float(getAccAxis(REG_OUT_Z_MSB))/4096.0); } -void MMA8451Q::getAccAllAxis(int16_t * res) { +void MMA8451Q::getAccAllAxis(float * res) { res[0] = getAccX(); res[1] = getAccY(); res[2] = getAccZ();
--- a/MMA8451Q.h Thu Oct 11 14:28:23 2012 +0000 +++ b/MMA8451Q.h Fri Oct 12 11:30:34 2012 +0000 @@ -27,23 +27,22 @@ * @code * #include "mbed.h" * #include "MMA8451Q.h" -* +* * #define MMA8451_I2C_ADDRESS (0x1d<<1) -* +* +* MMA8451Q acc(P_E25, P_E24, MMA8451_I2C_ADDRESS); +* PwmOut rled(LED_RED); +* PwmOut gled(LED_GREEN); +* PwmOut bled(LED_BLUE); +* * int main(void) { -* DigitalOut led(LED_GREEN); -* MMA8451Q acc(P_E25, P_E24, MMA8451_I2C_ADDRESS); -* printf("WHO AM I: 0x%2X\r\n", acc.getWhoAmI()); -* -* while (true) { -* printf("-----------\r\n"); -* printf("acc_x: %d\r\n", acc.getAccX()); -* printf("acc_y: %d\r\n", acc.getAccY()); -* printf("acc_z: %d\r\n", acc.getAccZ()); -* -* wait(1); -* led = !led; -* } +* +* while (true) { +* rled = 1.0 - abs(acc.getAccX()); +* gled = 1.0 - abs(acc.getAccY()); +* bled = 1.0 - abs(acc.getAccZ()); +* wait(0.1); +* } * } * @endcode */ @@ -76,28 +75,28 @@ * * @returns X axis acceleration */ - int16_t getAccX(); + float getAccX(); /** * Get Y axis acceleration * * @returns Y axis acceleration */ - int16_t getAccY(); + float getAccY(); /** * Get Z axis acceleration * * @returns Z axis acceleration */ - int16_t getAccZ(); + float getAccZ(); /** * Get XYZ axis acceleration * * @param res array where acceleration data will be stored */ - void getAccAllAxis(int16_t * res); + void getAccAllAxis(float * res); private: I2C m_i2c;