Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Cosmic_Pi_STM32_i2c
Diff: LPS25H.cpp
- Revision:
- 2:d3d42acce8e5
- Parent:
- 1:54e65e221cae
--- 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);
}
}