Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: KL46z_single_tap_empty_DE_4_1_PROJECT1B_wInterrupts KL46z_single_tap_empty_DE_4_1_PROJECT1D KL46z_single_tap_generic RAHUL_KL46z_single_tap_generic_copy ... more
Fork of MMA8451Q8a 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;
