mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-09-20 00:55:58 -04:00
+ refactored (not stable version)
This commit is contained in:
parent
920d72b5f4
commit
8d24e1bef7
@ -1,11 +1,12 @@
|
|||||||
//
|
//
|
||||||
// FILE: MS5611.cpp
|
// FILE: MS5611.cpp
|
||||||
// AUTHOR: Rob Tillaart
|
// AUTHOR: Rob Tillaart
|
||||||
// VERSION: 0.1.00
|
// VERSION: 0.1.01
|
||||||
// PURPOSE: MS5611 Temperature & Humidity library for Arduino
|
// PURPOSE: MS5611 Temperature & Humidity library for Arduino
|
||||||
// URL:
|
// URL:
|
||||||
//
|
//
|
||||||
// HISTORY:
|
// HISTORY:
|
||||||
|
// 0.1.01 small refactoring
|
||||||
// 0.1.00 added temperature and Pressure code
|
// 0.1.00 added temperature and Pressure code
|
||||||
// 0.0.00 initial version by Rob Tillaart (15-okt-2014)
|
// 0.0.00 initial version by Rob Tillaart (15-okt-2014)
|
||||||
//
|
//
|
||||||
@ -24,7 +25,6 @@ MS5611::MS5611(uint8_t address)
|
|||||||
{
|
{
|
||||||
_address = address;
|
_address = address;
|
||||||
Wire.begin();
|
Wire.begin();
|
||||||
// TWBR = 12; // 400KHz
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MS5611::init()
|
void MS5611::init()
|
||||||
@ -41,12 +41,16 @@ int MS5611::read(uint8_t bits)
|
|||||||
{
|
{
|
||||||
convertD1(bits);
|
convertD1(bits);
|
||||||
if (_result) return _result;
|
if (_result) return _result;
|
||||||
|
delay(10);
|
||||||
int32_t D1 = readADC();
|
int32_t D1 = readADC();
|
||||||
if (_result) return _result;
|
if (_result) return _result;
|
||||||
|
delay(10);
|
||||||
convertD2(8);
|
convertD2(8);
|
||||||
if (_result) return _result;
|
if (_result) return _result;
|
||||||
|
delay(10);
|
||||||
int32_t D2 = readADC();
|
int32_t D2 = readADC();
|
||||||
if (_result) return _result;
|
if (_result) return _result;
|
||||||
|
delay(10);
|
||||||
|
|
||||||
// PAGE 7/20 of the datasheet
|
// PAGE 7/20 of the datasheet
|
||||||
int32_t dT = D2 - C[5] * 256L;
|
int32_t dT = D2 - C[5] * 256L;
|
||||||
@ -106,16 +110,14 @@ uint16_t MS5611::readProm(uint8_t reg)
|
|||||||
|
|
||||||
int32_t MS5611::readADC()
|
int32_t MS5611::readADC()
|
||||||
{
|
{
|
||||||
Wire.beginTransmission(_address);
|
command(0x00);
|
||||||
Wire.write(0x00);
|
|
||||||
_result = Wire.endTransmission();
|
|
||||||
if (_result == 0)
|
if (_result == 0)
|
||||||
{
|
{
|
||||||
int nr = Wire.requestFrom(_address, (uint8_t)3);
|
int nr = Wire.requestFrom(_address, (uint8_t)3);
|
||||||
if (nr >= 3)
|
if (nr >= 3)
|
||||||
{
|
{
|
||||||
uint32_t val = Wire.read() * 65536L;
|
uint32_t val = Wire.read() * 65536L;
|
||||||
val += Wire.read() * 256;
|
val += Wire.read() * 256L;
|
||||||
val += Wire.read();
|
val += Wire.read();
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//
|
//
|
||||||
// FILE: MS5611.h
|
// FILE: MS5611.h
|
||||||
// AUTHOR: Rob Tillaart
|
// AUTHOR: Rob Tillaart
|
||||||
// VERSION: 0.1.00
|
// VERSION: 0.1.01
|
||||||
// PURPOSE: MS5611 Temperature & Pressure library for Arduino
|
// PURPOSE: MS5611 Temperature & Pressure library for Arduino
|
||||||
// URL:
|
// URL:
|
||||||
//
|
//
|
||||||
@ -18,7 +18,7 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MS5611_LIB_VERSION "0.1.00"
|
#define MS5611_LIB_VERSION "0.1.01"
|
||||||
|
|
||||||
class MS5611
|
class MS5611
|
||||||
{
|
{
|
||||||
@ -26,7 +26,7 @@ public:
|
|||||||
MS5611(uint8_t address);
|
MS5611(uint8_t address);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
int read();
|
int read(uint8_t bits = 8);
|
||||||
int32_t temperature;
|
int32_t temperature;
|
||||||
int32_t pressure;
|
int32_t pressure;
|
||||||
int getLastResult();
|
int getLastResult();
|
||||||
|
Loading…
Reference in New Issue
Block a user