worked to reduce program size
Dependencies: mbed
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
Generated on Thu Jul 14 2022 01:13:08 by 1.7.2