MMA8451Q8g

Fork of MMA8451Q8b by Stanley Cohen

Files at this revision

API Documentation at this revision

Comitter:
tisbrat
Date:
Wed Mar 15 16:48:06 2017 +0000
Parent:
12:12b18fdb72f7
Commit message:
MMA8451Q8g

Changed in this revision

MMA8451Q8g.cpp Show annotated file Show diff for this revision Revisions of this file
MMA8451Q8g.h Show annotated file Show diff for this revision Revisions of this file
diff -r 12b18fdb72f7 -r b58b302c53f6 MMA8451Q8g.cpp
--- a/MMA8451Q8g.cpp	Mon Feb 22 16:54:40 2016 +0000
+++ b/MMA8451Q8g.cpp	Wed Mar 15 16:48:06 2017 +0000
@@ -17,7 +17,7 @@
 */
 // Modify to change full scale gravity range 141207 sc
 
-
+#include "mbed.h"
 #include "MMA8451Q8g.h"
 
 #define REG_WHO_AM_I      0x0D
@@ -41,6 +41,9 @@
 #define ADDRESS_INDEX       0
 #define DATA_INDEX          1
 
+Serial coolt(USBTX, USBRX);
+
+
 float gScaling[3] = {4095.0,2048.0,1024.0}; //scaling for acceleration of gravity values
 
 MMA8451Q::MMA8451Q(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) {
@@ -56,6 +59,7 @@
     readRegs(REG_WHO_AM_I, &who_am_i, 1);
     return who_am_i;
 }
+
 void MMA8451Q::setStandbyMode(){
 #define ACTIVEMASK 0x01
     uint8_t registerData[1];
@@ -71,12 +75,16 @@
     uint8_t data[NUM_DATA] = {REG_CTRL_REG_1, 0x00};
     
     readRegs(REG_CTRL_REG_1, registerData, 1);
+    //coolt.printf("REG_CTRL_1: 0x%2x\r\n", REG_CTRL_REG_1);
     data[1] = registerData[0] | ACTIVEMASK;
     writeRegs(data, NUM_DATA); // put in standby
 }
 
+
+
 void MMA8451Q::setGLimit(int gSelect) {   
     uint8_t data[NUM_DATA] = {REG_CTRL_REG_1, 0x00};
+    coolt.printf("REG_CTRL_1: 0x%2x\r\n", REG_CTRL_REG_1);
     gChosen = gSelect;
     setStandbyMode();
     data[ADDRESS_INDEX ] = XYZ_DATA_CFG;
@@ -97,6 +105,15 @@
     setActiveMode(); // make active
 }
 
+/*void MMA8451Q::setPulseThreshold ( int axisSelect, int threshold);{
+}
+  
+void MMA8451Q::setPulseTimeLimit (int timeLimit);{
+}
+
+void MMA8451Q:: setPulseLatency(int latencyTime); {
+}*/
+
 // Make a genric register updater for those commands that need to put the 
 // accelerometer in standby mode
 void MMA8451Q::setRegisterInStandby(uint8_t regAddress,uint8_t regData) {
diff -r 12b18fdb72f7 -r b58b302c53f6 MMA8451Q8g.h
--- a/MMA8451Q8g.h	Mon Feb 22 16:54:40 2016 +0000
+++ b/MMA8451Q8g.h	Wed Mar 15 16:48:06 2017 +0000
@@ -69,7 +69,6 @@
    * @returns WHO_AM_I value
    */
   uint8_t getWhoAmI();
-
   /**
    * Get X axis acceleration
    *
@@ -98,6 +97,7 @@
    *
    * @param res array where acceleration data will be stored
    */
+  
   void getAccAllAxis(float * res);
 
  int16_t getAccAxis(uint8_t addr);
@@ -115,6 +115,10 @@
   Set pulse config register
   **/
   void setPulseConfiguration(uint8_t latch,uint8_t axisSet);
+  void setPulseThreshold ( int axisSelect, int threshold);
+  void setPulseTimeLimit (int timeLimit);
+  void setPulseLatency(int latencyTime);
+  
   /**
   Generic register set mode for those needing to be 
   put in standby to update