LSM303DLHC Full Driver: Readings For Acc, Mag and Temp; Class Method for frequently-used 13 sensor parameters; Class Method to direct modify registers; Support Calibration (offset+scale);

Dependencies:   mbed

Revision:
1:e68ce5025dad
Parent:
0:7864abfabe2f
Child:
3:522d01930e6a
diff -r 7864abfabe2f -r e68ce5025dad LSM303DLHC.cpp
--- a/LSM303DLHC.cpp	Mon Jun 06 07:40:45 2016 +0000
+++ b/LSM303DLHC.cpp	Tue Jun 07 06:20:17 2016 +0000
@@ -26,6 +26,7 @@
     // CUSTOM THE INITIAL CTRL FOR YOURSELF
     ACtrl(LP_OFF);      // ACC Normal Power Mode
     ACtrl(ODR3);        // ACC ON and Date Rate 25Hz
+    ACtrl(XYZ);         // ACC XYZ Axis Enable
     ACtrl(HPF_ON);      // ACC internal HPF In Use 
     ACtrl(HPF_CF0);     // ACC HPF Cutoff Freq = option 0    
     ACtrl(HPF_NORM);    // ACC HPF Model = Normal
@@ -87,6 +88,14 @@
     i2c.write(ACC_ADDRESS, data, 2); 
 }
 
+void LSM303DLHC::ACtrl(ACC_AXIS cmd){
+    data[0] = CTRL_REG1_A;
+    i2c.write(ACC_ADDRESS, data, 1);
+    i2c.read(ACC_ADDRESS, &data[1], 1);
+    data[1] = data[1] & (0b11111000) | (cmd<<0);
+    i2c.write(ACC_ADDRESS, data, 2); 
+}
+
 void LSM303DLHC::ACtrl(ACC_HPM cmd){
     data[0] = CTRL_REG2_A;
     i2c.write(ACC_ADDRESS, data, 1);