James Devine / LPS25H

Dependents:   Cosmic_Pi_STM32_i2c

Revision:
2:d3d42acce8e5
Parent:
1:54e65e221cae
diff -r 54e65e221cae -r d3d42acce8e5 LPS25H.cpp
--- a/LPS25H.cpp	Wed Mar 29 10:25:38 2017 +0000
+++ b/LPS25H.cpp	Sun Jan 06 15:29:59 2019 +0000
@@ -19,42 +19,53 @@
 
 #include "LPS25H.h"
 
-LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr) : _i2c(p_sda, p_scl)
+/*LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr) : i2c_(p_sda, p_scl)
 {
     LPS25H_addr = addr;
     LPS25H_mode = FIFO_HW_FILTER;
     init();
 }
 
-LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr, uint8_t mode) : _i2c(p_sda, p_scl)
+LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr, uint8_t mode) : i2c_(p_sda, p_scl)
 {
     LPS25H_addr = addr;
     LPS25H_mode = mode;
     init();
 }
+*/
 
-LPS25H::LPS25H (I2C& p_i2c, uint8_t addr) : _i2c(p_i2c)
+/*
+Si7020::Si7020(I2C *i2c) :
+    i2c_(i2c)
 {
+    i2c_owner = false;
+}
+*/
+
+LPS25H::LPS25H (I2C *i2c, uint8_t addr) : i2c_(i2c)
+{
+    //i2c_owner = false;
     LPS25H_addr = addr;
     LPS25H_mode = FIFO_HW_FILTER;
     init();
 }
 
-LPS25H::LPS25H (I2C& p_i2c, uint8_t addr, uint8_t mode) : _i2c(p_i2c)
+/*
+LPS25H::LPS25H (I2C& pi2c_, uint8_t addr, uint8_t mode) : i2c_(pi2c_)
 {
     LPS25H_addr = addr;
     LPS25H_mode = mode;
     init();
 }
-
+*/
 /////////////// Initialize ////////////////////////////////
 void LPS25H::init(void)
 {
-    _i2c.frequency(100000);
+    //i2c_.frequency(100000);
     // Check acc is available of not
     dt[0] = LPS25H_WHO_AM_I;
-    _i2c.write(LPS25H_addr, dt, 1, true);
-    _i2c.read(LPS25H_addr, dt, 1, false);
+    i2c_->write(LPS25H_addr, dt, 1, true);
+    i2c_->read(LPS25H_addr, dt, 1, false);
     if (dt[0] == I_AM_LPS25H) {
         LPS25H_id = I_AM_LPS25H;
         LPS25H_ready = 1;
@@ -68,23 +79,23 @@
         // AN4450 April 2014 Rev1 P20/26, Filter enabling and suggested configuration
         dt[0] = LPS25H_RES_CONF;
         dt[1] = 0x05;
-        _i2c.write(LPS25H_addr, dt, 2, false);
+        i2c_->write(LPS25H_addr, dt, 2, false);
         dt[0] = LPS25H_FIFO_CTRL;
         dt[1] = 0xdf;
-        _i2c.write(LPS25H_addr, dt, 2, false);
+        i2c_->write(LPS25H_addr, dt, 2, false);
         dt[0] = LPS25H_CTRL_REG2;
         dt[1] = 0x40;
-        _i2c.write(LPS25H_addr, dt, 2, false);
+        i2c_->write(LPS25H_addr, dt, 2, false);
         dt[0] = LPS25H_CTRL_REG1;
         dt[1] = 0x90;
-        _i2c.write(LPS25H_addr, dt, 2, false);
+        i2c_->write(LPS25H_addr, dt, 2, false);
     } else {
         dt[0] = LPS25H_CTRL_REG2;
         dt[1] = 0x0;
-        _i2c.write(LPS25H_addr, dt, 2, false);       
+        i2c_->write(LPS25H_addr, dt, 2, false);       
         dt[0] = LPS25H_CTRL_REG1;
         dt[1] = CR_STD_SET;
-        _i2c.write(LPS25H_addr, dt, 2, false);
+        i2c_->write(LPS25H_addr, dt, 2, false);
     }
 }
 
@@ -97,12 +108,12 @@
         return;
     }
     dt[0] = LPS25H_PRESS_POUT_XL | 0x80;
-    _i2c.write(LPS25H_addr, dt, 1, true);
-    _i2c.read(LPS25H_addr, dt, 3, false);
+    i2c_->write(LPS25H_addr, dt, 1, true);
+    i2c_->read(LPS25H_addr, dt, 3, false);
     press = dt[2] << 16 | dt[1] << 8 | dt[0];
     dt[0] = LPS25H_TEMP_OUT_L | 0x80;
-    _i2c.write(LPS25H_addr, dt, 1, true);
-    _i2c.read(LPS25H_addr, dt, 2, false);
+    i2c_->write(LPS25H_addr, dt, 1, true);
+    i2c_->read(LPS25H_addr, dt, 2, false);
     temp = dt[1] << 8 | dt[0];
 }
 
@@ -122,15 +133,15 @@
 uint8_t LPS25H::read_id()
 {
     dt[0] = LPS25H_WHO_AM_I;
-    _i2c.write(LPS25H_addr, dt, 1, true);
-    _i2c.read(LPS25H_addr, dt, 1, false);
+    i2c_->write(LPS25H_addr, dt, 1, true);
+    i2c_->read(LPS25H_addr, dt, 1, false);
     return (uint8_t)dt[0];
 }
 
 /////////////// I2C Freq. /////////////////////////////////
 void LPS25H::frequency(int hz)
 {
-    _i2c.frequency(hz);
+    i2c_->frequency(hz);
 }
 
 /////////////// General purpose R/W ///////////////////////
@@ -138,8 +149,8 @@
 {
     if (LPS25H_ready == 1) {
         dt[0] = addr;
-        _i2c.write(LPS25H_addr, dt, 1, true);
-        _i2c.read(LPS25H_addr, dt, 1, false);
+        i2c_->write(LPS25H_addr, dt, 1, true);
+        i2c_->read(LPS25H_addr, dt, 1, false);
     } else {
         dt[0] = 0xff;
     }
@@ -151,6 +162,6 @@
     if (LPS25H_ready == 1) {
         dt[0] = addr;
         dt[1] = data;
-        _i2c.write(LPS25H_addr, dt, 2, false);
+        i2c_->write(LPS25H_addr, dt, 2, false);
     }
 }