Daisuke Nakayama / BME280

BME280.h

Committer:
j_rocket_boy
Date:
2018-07-10
Revision:
2:42725d11023b
Parent:
1:0dbf59c6e564
Child:
3:df1107ddf502

File content as of revision 2:42725d11023b:

#ifndef BME280_LIB_H
#define BME280_LIB

#include "mbed.h"
#include "i2c_general_io.h"

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

class BME280{

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    = BMP280_HUM_OVER_SAMPL1;
    const char meas_reg_value   = BMP280_TEMP_OVER_SAMPL1 | BMP280_PRESS_OVER_SAMPL1 | BMP280_SLEEP_MODE;
    const char config_reg_value = BMP280_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;

    long signed int t_fine;
    long signed int BME280_compensate_T_int32(long signed int adc_T);
    long unsigned int BME280_compensate_P_int64(long signed int adc_P);
    long unsigned int BME280_compensate_H_int32(long signed int 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