気圧センサLPS25HをI2Cで動かすライブラリ

Dependents:   rocket_logger_sinkan2018_v1 Shock_Alt_Logger_v2_1

Committer:
Sigma884
Date:
Tue Apr 24 12:23:03 2018 +0000
Revision:
0:4b9b28d45e51
2018/4/24 update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sigma884 0:4b9b28d45e51 1 #ifndef LPS25H_LIB_H
Sigma884 0:4b9b28d45e51 2 #define LPS25H_LIB_H
Sigma884 0:4b9b28d45e51 3
Sigma884 0:4b9b28d45e51 4 #include "mbed.h"
Sigma884 0:4b9b28d45e51 5
Sigma884 0:4b9b28d45e51 6 #define WHO_AM_I 0x0F
Sigma884 0:4b9b28d45e51 7
Sigma884 0:4b9b28d45e51 8 #define CTRL_REG1 0x20
Sigma884 0:4b9b28d45e51 9 #define CTRL_REG2 0x21
Sigma884 0:4b9b28d45e51 10 #define FIFO_CTRL 0x2E
Sigma884 0:4b9b28d45e51 11
Sigma884 0:4b9b28d45e51 12 #define P_XL 0x28
Sigma884 0:4b9b28d45e51 13 #define P_L 0x29
Sigma884 0:4b9b28d45e51 14 #define P_H 0x2A
Sigma884 0:4b9b28d45e51 15
Sigma884 0:4b9b28d45e51 16 #define T_L 0x2B
Sigma884 0:4b9b28d45e51 17 #define T_H 0x2C
Sigma884 0:4b9b28d45e51 18
Sigma884 0:4b9b28d45e51 19 class LPS25H_lib{
Sigma884 0:4b9b28d45e51 20
Sigma884 0:4b9b28d45e51 21 public:
Sigma884 0:4b9b28d45e51 22 typedef enum{
Sigma884 0:4b9b28d45e51 23 AD0_LOW = 0xB8,
Sigma884 0:4b9b28d45e51 24 AD0_HIGH = 0xBA
Sigma884 0:4b9b28d45e51 25 }AD0;
Sigma884 0:4b9b28d45e51 26 LPS25H_lib(AD0 ad0, I2C &userI2C);
Sigma884 0:4b9b28d45e51 27 private:
Sigma884 0:4b9b28d45e51 28 char slave;
Sigma884 0:4b9b28d45e51 29 I2C *i2c;
Sigma884 0:4b9b28d45e51 30
Sigma884 0:4b9b28d45e51 31 public:
Sigma884 0:4b9b28d45e51 32 void begin(int drate);
Sigma884 0:4b9b28d45e51 33 private:
Sigma884 0:4b9b28d45e51 34 char cmd_ctrl_reg1[2];
Sigma884 0:4b9b28d45e51 35
Sigma884 0:4b9b28d45e51 36 public:
Sigma884 0:4b9b28d45e51 37 void setFIFO(int size);
Sigma884 0:4b9b28d45e51 38 private:
Sigma884 0:4b9b28d45e51 39 char cmd_ctrl_reg2[2];
Sigma884 0:4b9b28d45e51 40 char cmd_fifo_ctrl[2];
Sigma884 0:4b9b28d45e51 41
Sigma884 0:4b9b28d45e51 42 public:
Sigma884 0:4b9b28d45e51 43 int whoAmI();
Sigma884 0:4b9b28d45e51 44 private:
Sigma884 0:4b9b28d45e51 45 char cmd_who_am_i[1];
Sigma884 0:4b9b28d45e51 46
Sigma884 0:4b9b28d45e51 47 public:
Sigma884 0:4b9b28d45e51 48 float getPres();
Sigma884 0:4b9b28d45e51 49 private:
Sigma884 0:4b9b28d45e51 50 char cmd_p[3];
Sigma884 0:4b9b28d45e51 51 int data_p[3];
Sigma884 0:4b9b28d45e51 52
Sigma884 0:4b9b28d45e51 53 public:
Sigma884 0:4b9b28d45e51 54 float getTemp();
Sigma884 0:4b9b28d45e51 55 private:
Sigma884 0:4b9b28d45e51 56 char cmd_t[2];
Sigma884 0:4b9b28d45e51 57 int data_t[2];
Sigma884 0:4b9b28d45e51 58
Sigma884 0:4b9b28d45e51 59 public:
Sigma884 0:4b9b28d45e51 60 float getAlt(float P_0, float T_0);
Sigma884 0:4b9b28d45e51 61 private:
Sigma884 0:4b9b28d45e51 62 float pres_0;
Sigma884 0:4b9b28d45e51 63 float temp_0;
Sigma884 0:4b9b28d45e51 64 float pres_now;
Sigma884 0:4b9b28d45e51 65 };
Sigma884 0:4b9b28d45e51 66
Sigma884 0:4b9b28d45e51 67 #endif