Added function to retrieve raw data from sensor

Dependencies:   MotionSensor

Dependents:   KL46_eCompass KL46_eCompass_TiltCompensed_Acel-Mag Ragnarok_2ejes compass_acc ... more

Fork of MMA8451Q by Emilio Monti

Revision:
5:b8512e0de86b
Parent:
3:db7126dbd63f
Child:
6:d3f7851ff32e
--- a/MMA8451Q.cpp	Fri Oct 12 11:35:07 2012 +0000
+++ b/MMA8451Q.cpp	Mon Apr 07 21:03:37 2014 +0000
@@ -32,6 +32,7 @@
     writeRegs(data, 2);
 }
 
+
 MMA8451Q::~MMA8451Q() { }
 
 uint8_t MMA8451Q::getWhoAmI() {
@@ -52,12 +53,32 @@
     return (float(getAccAxis(REG_OUT_Z_MSB))/4096.0);
 }
 
+
 void MMA8451Q::getAccAllAxis(float * res) {
     res[0] = getAccX();
     res[1] = getAccY();
     res[2] = getAccZ();
 }
 
+void MMA8451Q::getAccXYZraw(int16_t * d) {
+    int16_t acc;
+    uint8_t res[6];
+    readRegs(REG_OUT_X_MSB, res, 6);
+
+    acc = (res[0] << 6) | (res[1] >> 2);
+    if (acc > UINT14_MAX/2)
+        acc -= UINT14_MAX;
+    d[0] = acc;
+    acc = (res[2] << 6) | (res[3] >> 2);
+    if (acc > UINT14_MAX/2)
+        acc -= UINT14_MAX;
+    d[1] = acc;
+    acc = (res[4] << 6) | (res[5] >> 2);
+    if (acc > UINT14_MAX/2)
+        acc -= UINT14_MAX;
+    d[2] = acc;
+}
+
 int16_t MMA8451Q::getAccAxis(uint8_t addr) {
     int16_t acc;
     uint8_t res[2];