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: I2C_Temprature_raspiboard
Fork of MPL3115A2 by
Revision 3:7c7c1ea6fc33, committed 2014-04-02
- Comitter:
- sophtware
- Date:
- Wed Apr 02 12:59:44 2014 +0000
- Parent:
- 2:2ebc9c0d4a54
- Child:
- 4:c0ee6755d57f
- Commit message:
- Updated documentation.
Changed in this revision
--- a/Altitude.h Wed Apr 02 12:22:45 2014 +0000 +++ b/Altitude.h Wed Apr 02 12:59:44 2014 +0000 @@ -14,8 +14,8 @@ #include "mbed.h" -//! Casting truncates, therefore negative numbers become positive. -//! This will only cast properly in the range -128 to 127. +//! Casting a float to a char truncates, therefore negative numbers become positive. +//! This will properly cast a float in the range -128 to 127 to a char. #define float_to_char(x) (((x)<0)?(-(char)(x)):((char)(x))) //! Altitude provides a wrapper around altitude data coming from the sensor. The class handles
--- a/MPL3115A2.h Wed Apr 02 12:22:45 2014 +0000
+++ b/MPL3115A2.h Wed Apr 02 12:59:44 2014 +0000
@@ -105,19 +105,32 @@
{
public:
//! Constructs an MPL3115A2 object and associates an I2C and optional Serial debug object.
+ //! @param *i2c The I2C object to use for the sensor.
+ //! @param *pc An optional serial debug connection object.
MPL3115A2(I2C *i2c, Serial *pc = NULL);
- //! Call from main to initialize the sensor, defaulting to Altitude mode.
+ //! Initializes the sensor, defaulting to Altitude mode. This should be called before using
+ //! the sensor for the first time.
void init();
- //! Returns the fixed device ID number (usually equal to 0xC4).
+ //! Queries the value from the WHO_AM_I register (usually equal to 0xC4).
+ //! @return The fixed device ID from the sensor.
char whoAmI() { return i2cRead(WHO_AM_I); }
- //! Returns the passed in altitude object with altitude data.
+ //! Reads Altitude data from the sensor and returns it in the Altitude object passed in. If
+ //! no data could be read, the Altitude object is left as is.
+ //! @param a A pointer to an Altitude object that will receive the sensor data.
+ //! @returns The Altitude pointer that was passed in.
Altitude* readAltitude(Altitude* a);
- //! Returns the passed in pressure object with barometric pressure data.
+ //! Reads Pressure data from the sensor and returns it in the Pressure object passed in. If
+ //! no data could be read, the Pressure object is left as is.
+ //! @param a A pointer to a Pressure object that will receive the sensor data.
+ //! @returns The Pressure pointer that was passed in.
Pressure* readPressure(Pressure* p);
- //! Returns the passed in temperature object with temperature data.
+ //! Reads Temperature data from the sensor and returns it in the Temperature object passed in. If
+ //! no data could be read, the Temperature object is left as is.
+ //! @param a A pointer to an Temperature object that will receive the sensor data.
+ //! @returns The Temperature pointer that was passed in.
Temperature* readTemperature(Temperature* t);
// Use these methods to set the sensor's offsets to increase its accuracy. You can generally
@@ -126,6 +139,7 @@
// pressure from the web for your area is generally not close enough to help with calibration.
// You may need to play with the setting to achieve good accuracy. I found the offset steps
// were not 100% accurate to the datasheet and had to adjust accordingly.
+
//! Returns the altitude offset stored in the sensor.
char offsetAltitude() { return i2cRead(OFF_H); }
//! Sets the altitude offset stored in the sensor. The allowed offset range is from -128 to 127 meters.
--- a/Pressure.h Wed Apr 02 12:22:45 2014 +0000
+++ b/Pressure.h Wed Apr 02 12:59:44 2014 +0000
@@ -14,11 +14,17 @@
#include "mbed.h"
+//! Pressure provides a wrapper around barometric data coming from the sensor. The class handles
+//! working with compressed data from the sensor and provides convenient functions for retreiving
+//! the data in various units (with room to add more if needed).
class Pressure
{
public:
+ //! The size of the compressed data buffer from the sensor. Used in an I2C read.
static const int size = 3;
+
+ //! The units we support converting the sensor data to.
enum unitsType { PASCALS, PSI, INHG, MMHG };
Pressure();
@@ -26,15 +32,19 @@
Pressure(const char* compressed);
Pressure(const char msb, const char csb, const char lsb);
+ //! Allows using the object directly in an I2C read operation.
operator char*(void) { return _compressed; }
+ //! Same as calling pressure with PASCALS as the parameter.
operator float(void) { return _pressure; }
float pressure(unitsType units = PASCALS);
+ //! Call to decompress the sensor data after an I2C read.
void setPressure();
void setPressure(const char* compressed);
void setPressure(const char msb, const char csb, const char lsb);
void setPressure(float a, unitsType units = PASCALS);
+ //! Returns the pressure as a string in the units specified, defaulting to PASCAL if none specified.
const char* print(unitsType units = PASCALS);
private:
--- a/Temperature.h Wed Apr 02 12:22:45 2014 +0000
+++ b/Temperature.h Wed Apr 02 12:59:44 2014 +0000
@@ -14,11 +14,17 @@
#include "mbed.h"
+//! Temperature provides a wrapper around temperature data coming from the sensor. The class handles
+//! working with compressed data from the sensor and provides convenient functions for retreiving
+//! the data in various units (with room to add more if needed).
class Temperature
{
public:
+ //! The size of the compressed data buffer from the sensor. Used in an I2C read.
static const int size = 2;
+
+ //! The units we support converting the sensor data to.
enum unitsType { CELSIUS, FAHRENHEIT, KELVIN };
Temperature();
@@ -26,15 +32,19 @@
Temperature(const char* compressed);
Temperature(const char msb, const char lsb);
+ //! Allows using the object directly in an I2C read operation.
operator char*(void) { return _compressed; }
+ //! Same as calling temperature with FAHRENHEIT as the parameter.
operator float(void) { return _temperature; }
float temperature(unitsType units = FAHRENHEIT);
+ //! Call to decompress the sensor data after an I2C read.
void setTemperature();
void setTemperature(const char* compressed);
void setTemperature(const char msb, const char lsb);
void setTemperature(float a, unitsType units = FAHRENHEIT);
+ //! Returns the temperature as a string in the units specified, defaulting to FAHRENHEIT if none specified.
const char* print(unitsType units = FAHRENHEIT);
private:
