気圧センサLPS25HをI2Cで動かすライブラリ
Dependents: rocket_logger_sinkan2018_v1 Shock_Alt_Logger_v2_1
Diff: LPS25H_lib.h
- Revision:
- 0:4b9b28d45e51
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LPS25H_lib.h Tue Apr 24 12:23:03 2018 +0000 @@ -0,0 +1,67 @@ +#ifndef LPS25H_LIB_H +#define LPS25H_LIB_H + +#include "mbed.h" + +#define WHO_AM_I 0x0F + +#define CTRL_REG1 0x20 +#define CTRL_REG2 0x21 +#define FIFO_CTRL 0x2E + +#define P_XL 0x28 +#define P_L 0x29 +#define P_H 0x2A + +#define T_L 0x2B +#define T_H 0x2C + +class LPS25H_lib{ + + public: + typedef enum{ + AD0_LOW = 0xB8, + AD0_HIGH = 0xBA + }AD0; + LPS25H_lib(AD0 ad0, I2C &userI2C); + private: + char slave; + I2C *i2c; + + public: + void begin(int drate); + private: + char cmd_ctrl_reg1[2]; + + public: + void setFIFO(int size); + private: + char cmd_ctrl_reg2[2]; + char cmd_fifo_ctrl[2]; + + public: + int whoAmI(); + private: + char cmd_who_am_i[1]; + + public: + float getPres(); + private: + char cmd_p[3]; + int data_p[3]; + + public: + float getTemp(); + private: + char cmd_t[2]; + int data_t[2]; + + public: + float getAlt(float P_0, float T_0); + private: + float pres_0; + float temp_0; + float pres_now; +}; + +#endif \ No newline at end of file