edits to standard MMA8451Q lib

Dependents:   KL05_accel-test

Fork of MMA8451Q by Emilio Monti

Files at this revision

API Documentation at this revision

Comitter:
angusg
Date:
Thu Nov 19 21:39:51 2015 +0000
Parent:
5:4e7dd6eb7829
Commit message:
Template ready for students

Changed in this revision

MMA8451Q.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/MMA8451Q.cpp	Thu Nov 19 02:10:35 2015 +0000
+++ b/MMA8451Q.cpp	Thu Nov 19 21:39:51 2015 +0000
@@ -20,16 +20,63 @@
 
 #define REG_WHO_AM_I      0x0D //13
 #define REG_CTRL_REG_1    0x2A
+#define REG_CTRL_REG_2    0x2B
 #define REG_OUT_X_MSB     0x01
 #define REG_OUT_Y_MSB     0x03
 #define REG_OUT_Z_MSB     0x05
 
+#define XYZ_DATA_CFG      0x0E
+#define HP_FILTER_CUTOFF  0x0F
+#define PL_CFG            0x11 //configure 
+#define TRANSIENT_COUNT   0x20
+
 #define UINT14_MAX        16383
 
-MMA8451Q::MMA8451Q(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) {
+//#define LNOISE
+
+MMA8451Q::MMA8451Q(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) {  
+
+#ifdef LNOISE
+
+    // LNOISE
+    uint8_t dataExt[3];
+    uint8_t data[2] = {REG_CTRL_REG_1, 0x0c}; // 0x1100 = DR0 & LNOISE (2.5ms b/w samples)
+    writeRegs(data, 2);    
+    
+    /*
+    data[0] = REG_CTRL_REG_2;
+    data[1] = 0x02;                 // Set MODS[1:0] to 0b10 for High Res mode
+    writeRegs(data, 3); 
+    */
+    
     // activate the peripheral
-    uint8_t data[2] = {REG_CTRL_REG_1, 0x01};
-    writeRegs(data, 2);
+    dataExt[0] = HP_FILTER_CUTOFF;
+    dataExt[1] = 0x00;                 
+    dataExt[2] = 0x01;                 /* Set the Pulse_LPF_EN */
+    writeRegs(dataExt, 3);      
+  
+    // activate the peripheral
+    data[1] = 0x01;   
+    writeRegs(data, 2);    
+    
+#else
+
+    // activate
+    //uint8_t data[2] = {REG_CTRL_REG_1, 0x01};
+    //writeRegs(data, 2);   
+    
+    // activate
+    uint8_t data[2] = {REG_CTRL_REG_1, 0x08}; 
+    writeRegs(data, 2);   
+    
+    // activate the peripheral
+    data[1] = 0x01;   
+    writeRegs(data, 2); 
+    
+    
+    
+#endif
+      
 }
 
 MMA8451Q::~MMA8451Q() { }