/* ---------------------------------------------------------------------------- | |
* SAM Software Package License | |
* ---------------------------------------------------------------------------- | |
* Copyright (c) 2015, Atmel Corporation | |
* | |
* All rights reserved. | |
* | |
* Redistribution and use in source and binary forms, with or without | |
* modification, are permitted provided that the following conditions are met: | |
* | |
* - Redistributions of source code must retain the above copyright notice, | |
* this list of conditions and the disclaimer below. | |
* | |
* Atmel's name may not be used to endorse or promote products derived from | |
* this software without specific prior written permission. | |
* | |
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR | |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE | |
* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, | |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, | |
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | |
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
* ---------------------------------------------------------------------------- | |
*/ | |
/*! \file bmp280.h | |
\brief BMP280 Sensor Driver Support Header File */ | |
#ifndef __BMP280_H__ | |
#define __BMP280_H__ | |
/*---------------------------------------------------------------------------- | |
* Headers | |
*----------------------------------------------------------------------------*/ | |
#include <stdint.h> | |
/*---------------------------------------------------------------------------- | |
* Definition | |
*----------------------------------------------------------------------------*/ | |
#define BMP280_64BITSUPPORT_PRESENT | |
/********************************************/ | |
/**\name ENABLE FLATING OUTPUT */ | |
/**************************************/ | |
// If the user wants to support floating point calculations, please set the following define. | |
#define BMP280_ENABLE_FLOAT | |
// If the user wants to support 64 bit integer calculation (needed for optimal pressure accuracy) | |
// please set the following definition. If int64 calculation is not wanted (e.g. because it would include | |
// large libraries), please do not set the definition. | |
#define BMP280_ENABLE_INT64 | |
/****************************************/ | |
/**\name DELAY */ | |
/****************************************/ | |
// defines the return parameter type of the BMP280_DELAY_FUNCTION | |
#define BMP280_DELAY_RETURN_TYPE void | |
// defines the calling parameter types of the BMP280_DELAY_FUNCTION | |
#define BMP280_DELAY_PARAM_TYPES uint16_t | |
/***************************************************************/ | |
/**\name GET AND SET BITSLICE FUNCTIONS */ | |
/***************************************************************/ | |
/* never change this line */ | |
#define BMP280_DELAY_FUNC(delay_in_msec) delay_func(delay_in_msec) | |
#define BMP280_GET_BITSLICE(regvar, bitname) ((regvar & bitname##__MSK) >> bitname##__POS) | |
#define BMP280_SET_BITSLICE(regvar, bitname, val) ((regvar & ~bitname##__MSK) | ((val<<bitname##__POS)&bitname##__MSK)) | |
/***************************************************************/ | |
/**\name COMMON USED CONSTANTS */ | |
/***************************************************************/ | |
/* Constants */ | |
#define BMP280_NULL 0 | |
#define BMP280_INIT_VALUE 0 | |
/************************************************/ | |
/**\name ERROR CODES */ | |
/************************************************/ | |
#define SUCCESS ((uint8_t)0) | |
#define ERROR ((uint8_t)0xFF) | |
#define E_BMP280_NULL_PTR ((uint8_t)ERROR-1) | |
#define E_BMP280_COMM_RES ((uint8_t)ERROR-2) | |
#define E_BMP280_OUT_OF_RANGE ((uint8_t)ERROR-3) | |
/************************************************/ | |
/**\name I2C ADDRESS DEFINITION */ | |
/***********************************************/ | |
#define BMP280_I2C_ADDRESS1 0x76 | |
#define BMP280_I2C_ADDRESS2 0x77 | |
/************************************************/ | |
/**\name POWER MODE DEFINITION */ | |
/***********************************************/ | |
/* Sensor Specific constants */ | |
#define BMP280_SLEEP_MODE 0x00 | |
#define BMP280_FORCED_MODE 0x01 | |
#define BMP280_NORMAL_MODE 0x03 | |
#define BMP280_SOFT_RESET_CODE 0xB6 | |
/************************************************/ | |
/**\name STANDBY TIME DEFINITION */ | |
/***********************************************/ | |
#define BMP280_STANDBY_TIME_1_MS 0x00 | |
#define BMP280_STANDBY_TIME_63_MS 0x01 | |
#define BMP280_STANDBY_TIME_125_MS 0x02 | |
#define BMP280_STANDBY_TIME_250_MS 0x03 | |
#define BMP280_STANDBY_TIME_500_MS 0x04 | |
#define BMP280_STANDBY_TIME_1000_MS 0x05 | |
#define BMP280_STANDBY_TIME_2000_MS 0x06 | |
#define BMP280_STANDBY_TIME_4000_MS 0x07 | |
/************************************************/ | |
/**\name OVERSAMPLING DEFINITION */ | |
/***********************************************/ | |
#define BMP280_OVERSAMPLING_SKIPPED 0x00 | |
#define BMP280_OVERSAMP_1X 0x01 | |
#define BMP280_OVERSAMP_2X 0x02 | |
#define BMP280_OVERSAMP_4X 0x03 | |
#define BMP280_OVERSAMP_8X 0x04 | |
#define BMP280_OVERSAMP_16X 0x05 | |
/************************************************/ | |
/**\name WORKING MODE DEFINITION */ | |
/***********************************************/ | |
#define BMP280_ULTRA_LOW_POWER_MODE 0x00 | |
#define BMP280_LOW_POWER_MODE 0x01 | |
#define BMP280_STANDARD_RESOLUTION_MODE 0x02 | |
#define BMP280_HIGH_RESOLUTION_MODE 0x03 | |
#define BMP280_ULTRA_HIGH_RESOLUTION_MODE 0x04 | |
#define BMP280_ULTRALOWPOWER_OVRS_PRES BMP280_OVERSAMP_1X | |
#define BMP280_ULTRALOWPOWER_OVRS_TEMP BMP280_OVERSAMP_1X | |
#define BMP280_LOWPOWER_OVRS_PRES BMP280_OVERSAMP_2X | |
#define BMP280_LOWPOWER_OVRS_TEMP BMP280_OVERSAMP_1X | |
#define BMP280_STANDARDRESOLUTION_OVRS_PRES BMP280_OVERSAMP_4X | |
#define BMP280_STANDARDRESOLUTION_OVRS_TEMP BMP280_OVERSAMP_1X | |
#define BMP280_HIGHRESOLUTION_OVRS_PRES BMP280_OVERSAMP_8X | |
#define BMP280_HIGHRESOLUTION_OVRS_TEMP BMP280_OVERSAMP_1X | |
#define BMP280_ULTRAHIGHRESOLUTION_OVRS_PRES BMP280_OVERSAMP_16X | |
#define BMP280_ULTRAHIGHRESOLUTION_OVRS_TEMP BMP280_OVERSAMP_2X | |
/************************************************/ | |
/**\name FILTER DEFINITION */ | |
/***********************************************/ | |
#define BMP280_FILTER_COEFF_OFF 0x00 | |
#define BMP280_FILTER_COEFF_2 0x01 | |
#define BMP280_FILTER_COEFF_4 0x02 | |
#define BMP280_FILTER_COEFF_8 0x03 | |
#define BMP280_FILTER_COEFF_16 0x04 | |
/************************************************/ | |
/**\name DELAY TIME DEFINITION */ | |
/***********************************************/ | |
#define T_INIT_MAX 20 /* 20/16 = 1.25 ms */ | |
#define T_MEASURE_PER_OSRS_MAX 37 /* 37/16 = 2.3125 ms*/ | |
#define T_SETUP_PRESSURE_MAX 10 /* 10/16 = 0.625 ms */ | |
/************************************************/ | |
/**\name CALIBRATION PARAMETERS DEFINITION */ | |
/***********************************************/ | |
/*calibration parameters */ | |
#define BMP280_DIG_T1_LSB_REG 0x88 | |
#define BMP280_DIG_T1_MSB_REG 0x89 | |
#define BMP280_DIG_T2_LSB_REG 0x8A | |
#define BMP280_DIG_T2_MSB_REG 0x8B | |
#define BMP280_DIG_T3_LSB_REG 0x8C | |
#define BMP280_DIG_T3_MSB_REG 0x8D | |
#define BMP280_DIG_P1_LSB_REG 0x8E | |
#define BMP280_DIG_P1_MSB_REG 0x8F | |
#define BMP280_DIG_P2_LSB_REG 0x90 | |
#define BMP280_DIG_P2_MSB_REG 0x91 | |
#define BMP280_DIG_P3_LSB_REG 0x92 | |
#define BMP280_DIG_P3_MSB_REG 0x93 | |
#define BMP280_DIG_P4_LSB_REG 0x94 | |
#define BMP280_DIG_P4_MSB_REG 0x95 | |
#define BMP280_DIG_P5_LSB_REG 0x96 | |
#define BMP280_DIG_P5_MSB_REG 0x97 | |
#define BMP280_DIG_P6_LSB_REG 0x98 | |
#define BMP280_DIG_P6_MSB_REG 0x99 | |
#define BMP280_DIG_P7_LSB_REG 0x9A | |
#define BMP280_DIG_P7_MSB_REG 0x9B | |
#define BMP280_DIG_P8_LSB_REG 0x9C | |
#define BMP280_DIG_P8_MSB_REG 0x9D | |
#define BMP280_DIG_P9_LSB_REG 0x9E | |
#define BMP280_DIG_P9_MSB_REG 0x9F | |
/************************************************/ | |
/**\name REGISTER ADDRESS DEFINITION */ | |
/***********************************************/ | |
#define BMP280_CHIP_ID_REG 0xD0 /*Chip ID Register */ | |
#define BMP280_RST_REG 0xE0 /*Softreset Register */ | |
#define BMP280_STAT_REG 0xF3 /*Status Register */ | |
#define BMP280_CTRL_MEAS_REG 0xF4 /*Ctrl Measure Register */ | |
#define BMP280_CONFIG_REG 0xF5 /*Configuration Register */ | |
#define BMP280_PRESSURE_MSB_REG 0xF7 /*Pressure MSB Register */ | |
#define BMP280_PRESSURE_LSB_REG 0xF8 /*Pressure LSB Register */ | |
#define BMP280_PRESSURE_XLSB_REG 0xF9 /*Pressure XLSB Register */ | |
#define BMP280_TEMPERATURE_MSB_REG 0xFA /*Temperature MSB Reg */ | |
#define BMP280_TEMPERATURE_LSB_REG 0xFB /*Temperature LSB Reg */ | |
#define BMP280_TEMPERATURE_XLSB_REG 0xFC /*Temperature XLSB Reg */ | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION */ | |
/***********************************************/ | |
/* Status Register */ | |
#define BMP280_STATUS_REG_MEASURING__POS 3 | |
#define BMP280_STATUS_REG_MEASURING__MSK 0x08 | |
#define BMP280_STATUS_REG_MEASURING__LEN 1 | |
#define BMP280_STATUS_REG_MEASURING__REG BMP280_STAT_REG | |
#define BMP280_STATUS_REG_IM_UPDATE__POS 0 | |
#define BMP280_STATUS_REG_IM_UPDATE__MSK 0x01 | |
#define BMP280_STATUS_REG_IM_UPDATE__LEN 1 | |
#define BMP280_STATUS_REG_IM_UPDATE__REG BMP280_STAT_REG | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION | |
FOR TEMPERATURE OVERSAMPLING */ | |
/***********************************************/ | |
/* Control Measurement Register */ | |
#define BMP280_CTRL_MEAS_REG_OVRS_TEMP__POS 5 | |
#define BMP280_CTRL_MEAS_REG_OVRS_TEMP__MSK 0xE0 | |
#define BMP280_CTRL_MEAS_REG_OVRS_TEMP__LEN 3 | |
#define BMP280_CTRL_MEAS_REG_OVRS_TEMP__REG \ | |
BMP280_CTRL_MEAS_REG | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION | |
FOR PRESSURE OVERSAMPLING */ | |
/***********************************************/ | |
#define BMP280_CTRL_MEAS_REG_OVRS_PRES__POS 2 | |
#define BMP280_CTRL_MEAS_REG_OVRS_PRES__MSK 0x1C | |
#define BMP280_CTRL_MEAS_REG_OVRS_PRES__LEN 3 | |
#define BMP280_CTRL_MEAS_REG_OVRS_PRES__REG \ | |
BMP280_CTRL_MEAS_REG | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION | |
FOR POWER MODE */ | |
/***********************************************/ | |
#define BMP280_CTRL_MEAS_REG_POWER_MODE__POS 0 | |
#define BMP280_CTRL_MEAS_REG_POWER_MODE__MSK 0x03 | |
#define BMP280_CTRL_MEAS_REG_POWER_MODE__LEN 2 | |
#define BMP280_CTRL_MEAS_REG_POWER_MODE__REG BMP280_CTRL_MEAS_REG | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION | |
FOR STANDBY DURATION */ | |
/***********************************************/ | |
/* Configuration Register */ | |
#define BMP280_CONFIG_REG_STANDBY_DURN__POS 5 | |
#define BMP280_CONFIG_REG_STANDBY_DURN__MSK 0xE0 | |
#define BMP280_CONFIG_REG_STANDBY_DURN__LEN 3 | |
#define BMP280_CONFIG_REG_STANDBY_DURN__REG BMP280_CONFIG_REG | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION | |
FOR IIR FILTER */ | |
/***********************************************/ | |
#define BMP280_CONFIG_REG_FILTER__POS 2 | |
#define BMP280_CONFIG_REG_FILTER__MSK 0x1C | |
#define BMP280_CONFIG_REG_FILTER__LEN 3 | |
#define BMP280_CONFIG_REG_FILTER__REG BMP280_CONFIG_REG | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION | |
FOR SPI ENABLE*/ | |
/***********************************************/ | |
#define BMP280_CONFIG_REG_SPI3_ENABLE__POS 0 | |
#define BMP280_CONFIG_REG_SPI3_ENABLE__MSK 0x01 | |
#define BMP280_CONFIG_REG_SPI3_ENABLE__LEN 1 | |
#define BMP280_CONFIG_REG_SPI3_ENABLE__REG BMP280_CONFIG_REG | |
/************************************************/ | |
/**\name BIT LENGTH,POSITION AND MASK DEFINITION | |
FOR PRESSURE AND TEMPERATURE DATA REGISTERS */ | |
/***********************************************/ | |
/* Data Register */ | |
#define BMP280_PRESSURE_XLSB_REG__POS 4 | |
#define BMP280_PRESSURE_XLSB_REG__MSK 0xF0 | |
#define BMP280_PRESSURE_XLSB_REG__LEN 4 | |
#define BMP280_PRESSURE_XLSB_REG__REG BMP280_PRESSURE_XLSB_REG | |
#define BMP280_TEMPERATURE_XLSB_REG__POS 4 | |
#define BMP280_TEMPERATURE_XLSB_REG__MSK 0xF0 | |
#define BMP280_TEMPERATURE_XLSB_REG__LEN 4 | |
#define BMP280_TEMPERATURE_XLSB_REG__REG BMP280_TEMPERATURE_XLSB_REG | |
/****************************************************/ | |
/**\name ARRAY PARAMETERS */ | |
/***************************************************/ | |
#define LSB_ZERO 0 | |
#define MSB_ONE 1 | |
#define LSB_TWO 2 | |
#define MSB_THREE 3 | |
#define LSB_FOUR 4 | |
#define MSB_FIVE 5 | |
#define LSB_SIX 6 | |
#define MSB_SEVEN 7 | |
/****************************************************/ | |
/**\name TRUE TEMPERATURE CALUCULATION PARAMETERS */ | |
/***************************************************/ | |
#define BMP280_DEC_TRUE_TEMP_5 5 | |
#define BMP280_DEC_TRUE_TEMP_128 128 | |
/****************************************************/ | |
/**\name TRUE PRESSURE CALUCULATION PARAMETERS */ | |
/***************************************************/ | |
#define BMP280_DEC_TRUE_PRES_64000 64000 | |
#define BMP280_DEC_TRUE_PRES_2 2 | |
#define BMP280_DEC_TRUE_PRES_32768 32768 | |
#define BMP280_DEC_TRUE_PRES_1048576 1048576 | |
#define BMP280_DEC_TRUE_PRES_3125 3125 | |
#define BMP280_HEX_TRUE_PRES_8M 0x80000000 | |
/****************************************************/ | |
/**\name TRUE TEMPERATURE CALCULATION FLOAT RETURN */ | |
/***************************************************/ | |
#define BMP280_FLOAT_TRUE_TEMP_16384 16384.0 | |
#define BMP280_FLOAT_TRUE_TEMP_1024 1024.0 | |
#define BMP280_FLOAT_TRUE_TEMP_131072 131072.0 | |
#define BMP280_FLOAT_TRUE_TEMP_8192 8192.0 | |
#define BMP280_FLOAT_TRUE_TEMP_5120 5120.0 | |
/****************************************************/ | |
/**\name TRUE PRESSURE CALCULATION FLOAT RETURN */ | |
/***************************************************/ | |
#define BMP280_FLOAT_TRUE_PRES_1 1.0 | |
#define BMP280_FLOAT_TRUE_PRES_0 0.0 | |
#define BMP280_FLOAT_TRUE_PRES_2 2.0 | |
#define BMP280_FLOAT_TRUE_PRES_4 4.0 | |
#define BMP280_FLOAT_TRUE_PRES_1_6 16.0 | |
#define BMP280_FLOAT_TRUE_PRES_64000 64000.0 | |
#define BMP280_FLOAT_TRUE_PRES_32768 32768.0 | |
#define BMP280_FLOAT_TRUE_PRES_65536 65536.0 | |
#define BMP280_FLOAT_TRUE_PRES_524288 524288.0 | |
#define BMP280_FLOAT_TRUE_PRES_1048576 1048576.0 | |
#define BMP280_FLOAT_TRUE_PRES_4096 4096.0 | |
#define BMP280_FLOAT_TRUE_PRES_6250 6250.0 | |
#define BMP280_FLOAT_TRUE_PRES_2147483648 2147483648.0 | |
/****************************************************/ | |
/**\name TRUE PRESSURE CALUCULATION 64BIT RETURN */ | |
/***************************************************/ | |
#define BMP280_TRUE_PRES_128000 128000 | |
#define BMP280_TRUE_PRES_1048576 1048576 | |
#define BMP280_TRUE_PRES_3125 3125 | |
#define BMP280_TRUE_PRES_1 1 | |
/**************************************************************/ | |
/**\name CHIP ID */ | |
/**************************************************************/ | |
#define BMP280_CHIP_ID 0x58 | |
/**************************************************************/ | |
/**\name STRUCTURE DEFINITIONS */ | |
/**************************************************************/ | |
// This structure holds all device specific calibration parameters | |
struct _bmp280_calib_par | |
{ | |
uint16_t dig_T1; /**<calibration T1 data*/ | |
int16_t dig_T2; /**<calibration T2 data*/ | |
int16_t dig_T3; /**<calibration T3 data*/ | |
uint16_t dig_P1; /**<calibration P1 data*/ | |
int16_t dig_P2; /**<calibration P2 data*/ | |
int16_t dig_P3; /**<calibration P3 data*/ | |
int16_t dig_P4; /**<calibration P4 data*/ | |
int16_t dig_P5; /**<calibration P5 data*/ | |
int16_t dig_P6; /**<calibration P6 data*/ | |
int16_t dig_P7; /**<calibration P7 data*/ | |
int16_t dig_P8; /**<calibration P8 data*/ | |
int16_t dig_P9; /**<calibration P9 data*/ | |
int32_t t_fine; /**<calibration t_fine data*/ | |
}; | |
// This structure holds BMP280 initialization parameters | |
struct _bmp280 | |
{ | |
struct _twi_desc* twid; | |
struct _bmp280_calib_par calpar; /**<calibration data*/ | |
uint8_t chip_id; /**< chip id of the sensor*/ | |
uint8_t dev_addr; /**< device address of the sensor*/ | |
uint8_t overs_temp; /**< temperature over sampling*/ | |
uint8_t overs_pres; /**< pressure over sampling*/ | |
void(*delay_msec)(uint16_t); /**< delay function pointer*/ | |
}; | |
/**************************************************************/ | |
/**\name FUNCTION DECLARATIONS */ | |
/**************************************************************/ | |
static uint8_t _bmp280_read(struct _bmp280* bmp280, uint8_t* buffer, uint32_t len); | |
static uint8_t _bmp280_write(struct _bmp280* bmp280, const uint8_t* buffer, uint32_t len); | |
uint8_t bmp280_write_register(struct _bmp280* bmp280, uint8_t addr, uint8_t* pdata, uint8_t len); | |
uint8_t bmp280_read_register(struct _bmp280* bmp280, uint8_t addr, uint8_t* pdata, uint8_t len); | |
uint8_t bmp280_read_uncompensed_temperature (struct _bmp280* bmp280, int32_t* uncT); | |
int32_t bmp280_compensate_temperatureC (struct _bmp280* bmp280, int32_t uncT); | |
uint8_t bmp280_read_uncompensed_pressure (struct _bmp280* bmp280, int32_t* uncP); | |
uint32_t bmp280_compensate_pressureP (struct _bmp280* bmp280, int32_t uncP); | |
uint8_t bmp280_read_uncompensed_pressure_temperature (struct _bmp280* bmp280, int32_t* uncP, int32_t* uncT); | |
uint8_t bmp280_read_pressure_temperature (struct _bmp280* bmp280, uint32_t* pressure, int32_t* temperature); | |
uint8_t bmp280_get_calpar (struct _bmp280* bmp280); | |
uint8_t bmp280_get_overs_temp (struct _bmp280* bmp280, uint8_t* value); | |
uint8_t bmp280_set_overs_temp (struct _bmp280* bmp280, uint8_t value); | |
uint8_t bmp280_get_overs_pres (struct _bmp280* bmp280, uint8_t* value); | |
uint8_t bmp280_set_overs_pres (struct _bmp280* bmp280, uint8_t value); | |
uint8_t bmp280_get_power_mode(struct _bmp280* bmp280, uint8_t* power_mode); | |
uint8_t bmp280_set_power_mode (struct _bmp280* bmp280, uint8_t power_mode); | |
uint8_t bmp280_set_soft_rst (struct _bmp280* bmp280); | |
uint8_t bmp280_get_spi3 (struct _bmp280* bmp280, uint8_t* enable_disable); | |
uint8_t bmp280_set_spi3 (struct _bmp280* bmp280, uint8_t enable_disable); | |
uint8_t bmp280_get_filter (struct _bmp280* bmp280, uint8_t *value); | |
uint8_t bmp280_set_filter (struct _bmp280* bmp280, uint8_t value); | |
uint8_t bmp280_get_standby_durn(struct _bmp280* bmp280, uint8_t* standby_durn); | |
uint8_t bmp280_set_standby_durn (struct _bmp280* bmp280, uint8_t standby_durn); | |
uint8_t bmp280_set_work_mode (struct _bmp280* bmp280, uint8_t work_mode); | |
uint8_t bmp280_get_forced_uncP_temperature(struct _bmp280* bmp280, int32_t* uncP, int32_t* uncT); | |
uint8_t bmp280_read_id_get_calib_param (struct _bmp280* bmp280); | |
/**************************************************************/ | |
/**\name FUNCTION FOR TRUE TEMPERATURE CALCULATION */ | |
/**************************************************************/ | |
#ifdef BMP280_ENABLE_FLOAT | |
double bmp280_compensate_T_double(struct _bmp280* bmp280, int32_t uncT); | |
double bmp280_compensate_P_double(struct _bmp280* bmp280, int32_t uncP); | |
#endif | |
#if defined(BMP280_ENABLE_INT64) && defined(BMP280_64BITSUPPORT_PRESENT) | |
uint32_t bmp280_compensate_P_int64(struct _bmp280* bmp280, int32_t uncP); | |
#endif | |
/**************************************************************/ | |
/**\name FUNCTION FOR DELAY CALCULATION DURING FORCEMODE */ | |
/**************************************************************/ | |
uint8_t bmp280_compute_wait_time (struct _bmp280* bmp280, uint8_t* delaytimer); | |
//------------------------------------------------------------------------------ | |
//------------------------------------------------------------------------------ | |
//------------------------------------------------------------------------------ | |
#endif |