MEMS pressure sensor by STMicroelectronics. FIFO Hardware digital filter as default.

Dependents:   Altimu10v4

Files at this revision

API Documentation at this revision

Comitter:
kenjiArai
Date:
Tue Aug 22 10:18:07 2017 +0000
Parent:
0:8fc511bd51af
Commit message:
countermeasure for NonCopyable

Changed in this revision

LPS25H.cpp Show annotated file Show diff for this revision Revisions of this file
LPS25H.h Show annotated file Show diff for this revision Revisions of this file
--- a/LPS25H.cpp	Sun Feb 22 00:59:52 2015 +0000
+++ b/LPS25H.cpp	Tue Aug 22 10:18:07 2017 +0000
@@ -2,31 +2,27 @@
  * mbed library program
  *  LPS25H MEMS pressure sensor: 260-1260 hPa absolute digital output barometer
  *   made by STMicroelectronics
- *   http://www.st-japan.co.jp/web/catalog/sense_power/FM89/SC1316/PF255230?s_searchtype=partnumber
+ *   http://www.st-japan.co.jp/web/catalog/sense_power/FM89/SC1316/PF255230
  *
- * Copyright (c) 2015 Kenji Arai / JH1PJL
+ * Copyright (c) 2015,'17 Kenji Arai / JH1PJL
  *  http://www.page.sannet.ne.jp/kenjia/index.html
  *  http://mbed.org/users/kenjiArai/
  *      Created: Feburary  21st, 2015
- *      Revised: Feburary  22nd, 2015
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
- * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *      Revised: August    21st, 2017
  */
 
 #include "LPS25H.h"
 
-LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr) : _i2c(p_sda, p_scl)
+LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr) :
+ _i2c_p(new I2C(p_sda, p_scl)), _i2c(*_i2c_p)
 {
     LPS25H_addr = addr;
     LPS25H_mode = FIFO_HW_FILTER;
     init();
 }
 
-LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr, uint8_t mode) : _i2c(p_sda, p_scl)
+LPS25H::LPS25H (PinName p_sda, PinName p_scl, uint8_t addr, uint8_t mode) :
+ _i2c_p(new I2C(p_sda, p_scl)), _i2c(*_i2c_p)
 {
     LPS25H_addr = addr;
     LPS25H_mode = mode;
@@ -65,7 +61,8 @@
     }
     if (LPS25H_mode == FIFO_HW_FILTER){
         // Hardware digital filter
-        // AN4450 April 2014 Rev1 P20/26, Filter enabling and suggested configuration
+        // AN4450 April 2014 Rev1 P20/26,
+        // Filter enabling and suggested configuration
         dt[0] = LPS25H_RES_CONF;
         dt[1] = 0x05;
         _i2c.write(LPS25H_addr, dt, 2, false);
@@ -81,7 +78,7 @@
     } else {
         dt[0] = LPS25H_CTRL_REG2;
         dt[1] = 0x0;
-        _i2c.write(LPS25H_addr, dt, 2, false);       
+        _i2c.write(LPS25H_addr, dt, 2, false);
         dt[0] = LPS25H_CTRL_REG1;
         dt[1] = CR_STD_SET;
         _i2c.write(LPS25H_addr, dt, 2, false);
--- a/LPS25H.h	Sun Feb 22 00:59:52 2015 +0000
+++ b/LPS25H.h	Tue Aug 22 10:18:07 2017 +0000
@@ -4,26 +4,20 @@
  *   made by STMicroelectronics
  *   http://www.st-japan.co.jp/web/catalog/sense_power/FM89/SC1316/PF255230
  *
- * Copyright (c) 2015 Kenji Arai / JH1PJL
+ * Copyright (c) 2015,'17 Kenji Arai / JH1PJL
  *  http://www.page.sannet.ne.jp/kenjia/index.html
  *  http://mbed.org/users/kenjiArai/
  *      Created: Feburary  21st, 2015
- *      Revised: Feburary  22nd, 2015
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
- * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *      Revised: August    21st, 2017
  */
 /*
- *---------------- REFERENCE ----------------------------------------------------------------------
+ *---------------- REFERENCE ---------------------------------------------------
  * Original Information
- *  http://www.st-japan.co.jp/web/jp/catalog/sense_power/FM89/SC1316/PF255230
+ *  http://www.st.com/content/st_com/ja/products/
+ *        mems-and-sensors/pressure-sensors/lps25h.html
  * AN4450 Application Note (as follows)
- *  http://www.st.com/st-web-ui/static/active/jp/
- *         resource/technical/document/application_note/DM00108837.pdf
- * Device kit
+ *  en.DM00108837.pdf
+ * Device kit (not avairable)
  *  http://akizukidenshi.com/catalog/g/gK-08338/
  */
 
@@ -99,7 +93,8 @@
  * int main() {
  *   while( trure){
  *      baro.get();
- *      printf("Presere: 0x%6.1f, Temperature: 0x%+4.1f\r\n", baro.pressue(), baro.temperature());
+ *      printf("Presere: 0x%6.1f, Temperature: 0x%+4.1f\r\n",
+ *              baro.pressue(), baro.temperature());
  *      wait(1.0);
  *   }
  * }
@@ -111,16 +106,16 @@
 public:
     /** Configure data pin
       * @param data SDA and SCL pins
-      * @param device address LPS25H(SA0=0 or 1), LPS25H_G_CHIP_ADDR or LPS25H_V_CHIP_ADDR
-      * @param Operation mode FIFO_HW_FILTER(default) or FIFO_BYPASS (Option parameter)
+      * @param device address LPS25H(SA0=0 or 1), LPS25H_G_CHIP_ADDR or _V_
+      * @param Operation mode FIFO_HW_FILTER(default) or FIFO_BYPASS
       */
     LPS25H(PinName p_sda, PinName p_scl, uint8_t addr);
     LPS25H(PinName p_sda, PinName p_scl, uint8_t addr, uint8_t mode);
 
     /** Configure data pin (with other devices on I2C line)
       * @param I2C previous definition
-      * @param device address LPS25H(SA0=0 or 1), LPS25H_G_CHIP_ADDR or LPS25H_V_CHIP_ADDR
-      * @param Operation mode FIFO_HW_FILTER(default) or FIFO_BYPASS (Option parameter)
+      * @param device address LPS25H(SA0=0 or 1), LPS25H_G_CHIP_ADDR or _V_
+      * @param Operation mode FIFO_HW_FILTER(default) or FIFO_BYPASS
       */
     LPS25H(I2C& p_i2c, uint8_t addr);
     LPS25H(I2C& p_i2c, uint8_t addr, uint8_t mode);
@@ -175,7 +170,8 @@
     void write_reg(uint8_t addr, uint8_t data);
 
 protected:
-    I2C _i2c;
+    I2C *_i2c_p;
+    I2C &_i2c;
 
     void init(void);