LPS22HB library
Diff: LPS22HB.cpp
- Revision:
- 3:755ac86eb6fd
- Parent:
- 1:5f21b0eac2c2
- Child:
- 4:50be6522da7f
--- a/LPS22HB.cpp Wed Nov 30 18:17:32 2016 +0000 +++ b/LPS22HB.cpp Sun Mar 19 09:07:48 2017 +0000 @@ -19,38 +19,34 @@ #include "LPS22HB.h" -LPS22HB::LPS22HB (PinName p_sda, PinName p_scl, uint8_t addr) : _i2c(p_sda, p_scl) +LPS22HB::LPS22HB (PinName p_sda, PinName p_scl, uint8_t addr) + : + i2c_p(new I2C(p_sda, p_scl)), + _i2c(*i2c_p) { LPS22HB_addr = addr; - //LPS22HB_mode = FIFO_BYPASS; init(); } -/*LPS22HB::LPS22HB (PinName p_sda, PinName p_scl, uint8_t addr, uint8_t mode) : _i2c(p_sda, p_scl) +LPS22HB::LPS22HB (I2C& p_i2c, uint8_t addr) + : + i2c_p(NULL), + _i2c(p_i2c) { LPS22HB_addr = addr; - LPS22HB_mode = mode; - init(); -}*/ - -LPS22HB::LPS22HB (I2C& p_i2c, uint8_t addr) : _i2c(p_i2c) -{ - LPS22HB_addr = addr; - //LPS22HB_mode = FIFO_BYPASS; init(); } -/*LPS22HB::LPS22HB (I2C& p_i2c, uint8_t addr, uint8_t mode) : _i2c(p_i2c) +LPS22HB::~LPS22HB() { - LPS22HB_addr = addr; - LPS22HB_mode = mode; - init(); -}*/ + if( NULL != i2c_p ) + delete i2c_p; +} /////////////// Initialize //////////////////////////////// void LPS22HB::init(void) { - _i2c.frequency(400000); + //_i2c.frequency(400000); // Check acc is available of not dt[0] = LPS22HB_WHO_AM_I; _i2c.write(LPS22HB_addr, dt, 1, true); @@ -63,32 +59,8 @@ LPS22HB_ready = 0; return; // acc chip is NOT on I2C line then terminate } - /*if (LPS22HB_mode == FIFO_HW_FILTER){ - // Hardware digital filter - // AN4450 April 2014 Rev1 P20/26, Filter enabling and suggested configuration - dt[0] = LPS22HB_RES_CONF; - dt[1] = 0x05; - _i2c.write(LPS22HB_addr, dt, 2, false); - dt[0] = LPS22HB_FIFO_CTRL; - dt[1] = 0xdf; - _i2c.write(LPS22HB_addr, dt, 2, false); - dt[0] = LPS22HB_CTRL_REG2; - dt[1] = 0x40; - _i2c.write(LPS22HB_addr, dt, 2, false); - dt[0] = LPS22HB_CTRL_REG1; - dt[1] = 0x90; - _i2c.write(LPS22HB_addr, dt, 2, false); - } else { - dt[0] = LPS22HB_CTRL_REG2; - dt[1] = 0x0; - _i2c.write(LPS22HB_addr, dt, 2, false); - dt[0] = LPS22HB_CTRL_REG1; - dt[1] = CR_STD_SET; - _i2c.write(LPS22HB_addr, dt, 2, false); - }*/ - set_odr(LPS22HB_ODR_75HZ); - + set_odr(LPS22HB_ODR_1HZ); } /////////////// Start conv. and gwt all data ////////////// @@ -112,13 +84,25 @@ /////////////// Read data from sensor ///////////////////// float LPS22HB::pressure() { - return (float)press / 4096; + return (float)press / 4096.0f; +} + +//add by user +uint32_t LPS22HB::pressure_raw() +{ + return press; } /////////////// Read data from sensor ///////////////////// float LPS22HB::temperature() { - return (float)temp / 480 + 42.5; + return (float)temp / 100.0f; +} + +//add by user +int16_t LPS22HB::temperature_raw() +{ + return temp; } /////////////// ID ////////////////////////////////////////