Fork of original LPS331 library Changed the I2C address to 0xBA
Diff: LPS331.cpp
- Revision:
- 0:ef4f624dc3ec
- Child:
- 1:f70e671b008f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LPS331.cpp Sat Oct 04 12:02:25 2014 +0000 @@ -0,0 +1,64 @@ +//********************** +// LPS331.cpp for mbed +// +// LPS331 barometer(P0_5,P0_4); +// or +// I2C i2c(P0_5,P0_4); +// LPS331 barometer(i2c); +// +// (C)Copyright 2014 All rights reserved by Y.Onodera +// http://einstlab.web.fc2.com +//********************** + +#include "mbed.h" +#include "LPS331.h" + +LPS331::LPS331 (PinName sda, PinName scl) : _i2c(sda, scl) { + init(); +} +LPS331::LPS331 (I2C& p_i2c) : _i2c(p_i2c) { + init(); +} + +void LPS331::put(unsigned char a, unsigned char b) +{ + buf[0]=a; + buf[1]=b; + _i2c.write(LPS331_ADDR, buf, 2); +} + + +void LPS331::get(unsigned char a) +{ + buf[0] = a; + _i2c.write(LPS331_ADDR, buf, 1, true); // no stop, repeated + _i2c.read( LPS331_ADDR, buf, 1); + +} + +long LPS331::value() +{ + + // get press_high + get(LPS331_PRESS_OUT_H); + //press=buf[0]*0x10000; + press.byte.UB=buf[0]; + // get tpress_low + get(LPS331_PRESS_OUT_L); + //press+=buf[0]*0x100; + press.byte.HB=buf[0]; + // get press_xl + get(LPS331_PRESS_POUT_XL_REH); + //press+=buf[0]; + press.byte.LB=buf[0]; + return press.Val; + +} + +void LPS331::init() +{ + // Power ON Cycle=1Hz + put(LPS331_CTRL_REG1, 0x90); +} + +