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.
Diff: MPL3115A2.cpp
- Revision:
- 5:9edec5ee8bf4
- Parent:
- 4:fdf14a259af8
- Child:
- 6:03c24251e500
--- a/MPL3115A2.cpp Thu May 30 07:27:24 2013 +0000
+++ b/MPL3115A2.cpp Thu Aug 22 12:03:19 2013 +0000
@@ -309,9 +309,9 @@
float faltm;
/*
- * dt[0] = Bits 12-19 of 20-bit real-time Pressure sample. (b7-b0)
- * dt[1] = Bits 4-11 of 20-bit real-time Pressure sample. (b7-b0)
- * dt[2] = Bits 0-3 of 20-bit real-time Pressure sample (b7-b4)
+ * dt[0] = Bits 12-19 of 20-bit real-time Altitude sample. (b7-b0)
+ * dt[1] = Bits 4-11 of 20-bit real-time Altitude sample. (b7-b0)
+ * dt[2] = Bits 0-3 of 20-bit real-time Altitude sample (b7-b4)
*/
readRegs( REG_ALTIMETER_MSB, &dt[0], 3);
altm = (dt[0]<<8) | dt[1];
@@ -377,6 +377,57 @@
}
+unsigned int MPL3115A2::getAllDataRaw( unsigned char *dt)
+{
+ if ( MPL3115A2_mode == ALTIMETER_MODE) {
+ getAltimeterRaw( &dt[0]); // 3 bytes
+ } else {
+ getPressureRaw( &dt[0]); // 3 bytes
+ }
+
+ getTemperatureRaw( &dt[3]); // 2 bytes
+
+ return 1;
+}
+
+unsigned int MPL3115A2::getAltimeterRaw( unsigned char *dt)
+{
+
+ /*
+ * dt[0] = Bits 12-19 of 20-bit real-time Pressure sample. (b7-b0)
+ * dt[1] = Bits 4-11 of 20-bit real-time Pressure sample. (b7-b0)
+ * dt[2] = Bits 0-3 of 20-bit real-time Pressure sample (b7-b4)
+ */
+ readRegs( REG_ALTIMETER_MSB, &dt[0], 3);
+
+ return 1;
+}
+
+unsigned int MPL3115A2::getPressureRaw( unsigned char *dt)
+{
+
+ /*
+ * dt[0] = Bits 12-19 of 20-bit real-time Pressure sample. (b7-b0)
+ * dt[1] = Bits 4-11 of 20-bit real-time Pressure sample. (b7-b0)
+ * dt[2] = Bits 0-3 of 20-bit real-time Pressure sample (b7-b4)
+ */
+ readRegs( REG_PRESSURE_MSB, &dt[0], 3);
+
+ return 1;
+}
+
+unsigned int MPL3115A2::getTemperatureRaw( unsigned char *dt)
+{
+
+ /*
+ * dt[0] = Bits 4-11 of 16-bit real-time temperature sample. (b7-b0)
+ * dt[1] = Bits 0-3 of 16-bit real-time temperature sample. (b7-b4)
+ */
+ readRegs( REG_TEMP_MSB, &dt[0], 2);
+
+ return 1;
+}
+
void MPL3115A2::readRegs(int addr, uint8_t * data, int len) {
char t[1] = {addr};
m_i2c.write(m_addr, t, 1, true);