STMicroelectronics LPS331AP, LPS25H SPI Library. This library is base on https://developer.mbed.org/users/nyamfg/code/LPS331_I2C/
Dependents: LPS331_SPI_Test main_SPC
Fork of LPS331_I2C by
Diff: LPS331_SPI.cpp
- Revision:
- 3:5a56dd5131bb
- Parent:
- 2:c2aa9cfc45c2
- Child:
- 4:af2153bce185
--- a/LPS331_SPI.cpp Thu Jul 28 08:23:18 2016 +0000 +++ b/LPS331_SPI.cpp Thu Jul 28 09:28:02 2016 +0000 @@ -1,47 +1,48 @@ /* - * I2C/SPI digital pressure sensor "LPS331AP" library for I2C mode. + * I2C/SPI digital pressure sensor "LPS331AP" library for SPI mode. * + * Copyright(c) -2016 Toru OHTSUKA, * Copyright(c) -2013 unos@NYAMFG, * Released under the MIT License: http://mbed.org/license/mit * - * revision: see LPS331_I2C.h. + * revision: see LPS331_SPI.h. */ -#include "LPS331_I2C.h" +#include "LPS331_SPI.h" -LPS331_I2C::LPS331_I2C(PinName sda, PinName scl, bool sa0) : _i2c(sda, scl) +LPS331_SPI::LPS331_SPI(PinName sda, PinName scl, bool sa0) : _i2c(sda, scl) { - if(sa0 == LPS331_I2C_SA0_HIGH) { - _address = LPS331_I2C_ADDRESS_SA0_HIGH; + if(sa0 == LPS331_SPI_SA0_HIGH) { + _address = LPS331_SPI_ADDRESS_SA0_HIGH; } else { - _address = LPS331_I2C_ADDRESS_SA0_LOW; + _address = LPS331_SPI_ADDRESS_SA0_LOW; } _i2c.frequency(400 * 1000); _ctrlreg1 = 0x20; } -LPS331_I2C::~LPS331_I2C() +LPS331_SPI::~LPS331_SPI() { } -char LPS331_I2C::whoami() +char LPS331_SPI::whoami() { return _read(0x0f); } -bool LPS331_I2C::isAvailable() +bool LPS331_SPI::isAvailable() { if(whoami() == 0xbb) { return true; } return false; } -void LPS331_I2C::setResolution(char pressure_avg, char temp_avg) +void LPS331_SPI::setResolution(char pressure_avg, char temp_avg) { _write(0x10, ((temp_avg & 0x07) << 4) | (pressure_avg & 0x0f)); } -void LPS331_I2C::setActive(bool is_active) +void LPS331_SPI::setActive(bool is_active) { if(is_active) { _ctrlreg1 |= 0x80; @@ -52,7 +53,7 @@ _write(0x20, _ctrlreg1); } -void LPS331_I2C::setDataRate(char datarate) +void LPS331_SPI::setDataRate(char datarate) { datarate &= 0x07; @@ -63,7 +64,7 @@ } -float LPS331_I2C::getPressure() +float LPS331_SPI::getPressure() { char data[3]; float pressure = 0; @@ -78,7 +79,7 @@ return pressure; } -float LPS331_I2C::getTemperature() +float LPS331_SPI::getTemperature() { char data[2]; short temp = 0; @@ -92,7 +93,7 @@ } -void LPS331_I2C::_write(char subaddress, char data) +void LPS331_SPI::_write(char subaddress, char data) { _i2c.start(); _i2c.write(_address); @@ -101,7 +102,7 @@ _i2c.stop(); } -char LPS331_I2C::_read(char subaddress) +char LPS331_SPI::_read(char subaddress) { char result = 0; @@ -118,7 +119,7 @@ return result; } -void LPS331_I2C::_read_multibyte(char startsubaddress, char* data, char count) +void LPS331_SPI::_read_multibyte(char startsubaddress, char* data, char count) { _i2c.start(); _i2c.write(_address);