BME280にアクセスするためのライブラリ

BME280.h

Committer:
j_rocket_boy
Date:
2018-07-10
Revision:
0:95f2b96cdc7f
Child:
1:0dbf59c6e564

File content as of revision 0:95f2b96cdc7f:

#ifndef BME280_LIB_H
#define BME280_LIB

#include "mbed.h"
#include "i2c_general_io.h"
//データシートより,補正関数用
typedef  long signed int BME280_S32_t;
typedef long signed int BME280_U32_t;
typedef long long signed int BME280_S64_t;

class BME280{

private:
#include "BME280_reg.h"     //レジスタ関連の定義

public:
    /**
         @brief Create a new i2c sensor.
         @param sda   SDA pin name (Defined in PinName.h)
         @param sck   SCK pin name (Defined in PinName.h)
    */
    BME280(PinName sda, PinName scl);
    /**
         @brief Create a new i2c sensor.
         @param &i2c_obj   i2c name
    */
    BME280(GEN_I2C &i2c_obj);
    
    /**
         @brief Disable the i2c sensor.
         @param No parameters.
    */
    virtual ~BME280();

    const char hum_reg_value    = HUM_OVER_SAMPL1;
    const char meas_reg_value   = TEMP_OVER_SAMPL1 | PRESS_OVER_SAMPL1 | SLEEP_MODE;
    const char config_reg_value = IIR_OFF;

    float  temp;
    double press;
    float  hum;
    
    void read_sensor(void);
    bool data_is_ready(void);
    void set_sleep_mode(void);
    void set_force_mode(void);
    void set_normal_mode(void);

private:

    GEN_I2C *i2c_p;
    GEN_I2C &sensor;

    BME280_S32_t t_fine;
    BME280_S32_t BME280_compensate_T_int32(BME280_S32_t adc_T);
    BME280_U32_t BME280_compensate_P_int64(BME280_S32_t adc_P);
    BME280_U32_t BME280_compensate_H_int32(BME280_S32_t adc_H);
    
    void init(void);    
    
    //データシートより,補正定数
    unsigned short dig_T1;
      signed short dig_T2;
      signed short dig_T3;

    unsigned short dig_P1;
      signed short dig_P2;
      signed short dig_P3;
      signed short dig_P4;
      signed short dig_P5;
      signed short dig_P6;
      signed short dig_P7;
      signed short dig_P8;
      signed short dig_P9;

    unsigned char  dig_H1;
      signed short dig_H2;
    unsigned char  dig_H3;
      signed short dig_H4;
      signed short dig_H5;
      signed char  dig_H6;
    

};



#endif