worked to reduce program size

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LPS25H.h Source File

LPS25H.h

00001 /*
00002  * mbed library program
00003  *  LPS25H MEMS pressure sensor: 260-1260 hPa absolute digital output barometer
00004  *   made by STMicroelectronics
00005  *   http://www.st-japan.co.jp/web/catalog/sense_power/FM89/SC1316/PF255230
00006  * Copyright (c) 2015,'17 Kenji Arai / JH1PJL
00007  *      Created: Feburary  21st, 2015
00008  *      Revised: August    21st, 2017
00009  */
00010 
00011 #ifndef LPS25H_H
00012 #define LPS25H_H
00013 
00014 #include "mbed.h"
00015 
00016 //  LPS25H Address
00017 //  7bit address = 0b101110x(0x5c or 0x5d depends on SA0/SDO)
00018 #define LPS25H_G_CHIP_ADDR  (0x5c << 1)    // SA0(=SDO pin) = Ground
00019 #define LPS25H_V_CHIP_ADDR  (0x5d << 1)    // SA0(=SDO pin) = Vdd
00020 
00021 // MODE Selection
00022 #define FIFO_HW_FILTER          1
00023 #define FIFO_BYPASS             0
00024 
00025 //  Register's definition
00026 #define LPS25H_RES_CONF        0x10
00027 #define LPS25H_CTRL_REG1       0x20
00028 #define LPS25H_CTRL_REG2       0x21
00029 #define LPS25H_PRESS_POUT_XL   0x28
00030 #define LPS25H_FIFO_CTRL       0x2e
00031 
00032 // Control Reg.
00033 #define CR_STD_SET      ( (1UL << 7) + (1UL << 4) + (1UL << 2) )
00034 
00035 class LPS25H
00036 {
00037 public:
00038     LPS25H(PinName p_sda, PinName p_scl);
00039     void get(void);                 // Start convertion & data save
00040     float pressure(void);           // Read pressure data
00041     float altitude(void);                       // Read altitude data; return altitude in
00042 
00043 protected:
00044     I2C *_i2c_p;
00045     I2C &_i2c;
00046     void init(void);
00047 
00048 private:
00049     char dt[6];            // working buffer
00050     uint8_t LPS25H_addr;   // Sensor address
00051     //uint8_t LPS25H_id;     // ID
00052     uint8_t LPS25H_ready;  // Device is on I2C line = 1, not = 0
00053     uint8_t LPS25H_mode;   // Operation mode
00054     uint32_t press;        // pressure raw data
00055     int32_t alt;
00056 };
00057 
00058 #endif      // LPS25H_H