diff --git a/README.md b/README.md index 0a0e398..2459e80 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ The sensor driver package includes bme280.c, bme280.h and bme280_defs.h files. SPI 3-wire is currently not supported in the API. ## Usage guide ### Initializing the sensor -To initialize the sensor, user need to create a device structure. User can do this by -creating an instance of the structure bme280_dev. After creating the device strcuture, user +To initialize the sensor, user need to create a device structure. User can do this by +creating an instance of the structure bme280_dev. After creating the device strcuture, user need to fill in the various parameters as shown below. #### Example for SPI 4-Wire @@ -40,7 +40,7 @@ dev.intf_ptr = &dev_addr; dev.intf = BME280_SPI_INTF; dev.read = user_spi_read; dev.write = user_spi_write; -dev.delay_ms = user_delay_ms; +dev.delay_us = user_delay_us; rslt = bme280_init(&dev); ``` @@ -54,7 +54,7 @@ dev.intf_ptr = &dev_addr; dev.intf = BME280_I2C_INTF; dev.read = user_i2c_read; dev.write = user_i2c_write; -dev.delay_ms = user_delay_ms; +dev.delay_us = user_delay_us; rslt = bme280_init(&dev); ``` @@ -72,7 +72,7 @@ By default, 64 bit variant is used in the API. If the user wants 32 bit variant, macro BME280_64BIT_ENABLE in bme280_defs.h file. ### Sensor data units -> The sensor data units depends on the following macros being enabled or not, +> The sensor data units depends on the following macros being enabled or not, > (in bme280_defs.h file or as compiler macros) > * BME280_FLOAT_ENABLE > * BME280_64BIT_ENABLE @@ -112,7 +112,7 @@ int8_t stream_sensor_data_forced_mode(struct bme280_dev *dev) settings_sel = BME280_OSR_PRESS_SEL | BME280_OSR_TEMP_SEL | BME280_OSR_HUM_SEL | BME280_FILTER_SEL; rslt = bme280_set_sensor_settings(settings_sel, dev); - + /*Calculate the minimum delay required between consecutive measurement based upon the sensor enabled * and the oversampling configuration. */ req_delay = bme280_cal_meas_delay(&dev->settings); @@ -122,7 +122,7 @@ int8_t stream_sensor_data_forced_mode(struct bme280_dev *dev) while (1) { rslt = bme280_set_sensor_mode(BME280_FORCED_MODE, dev); /* Wait for the measurement to complete and print data @25Hz */ - dev->delay_ms(req_delay, dev->intf_ptr); + dev->delay_us(req_delay, dev->intf_ptr); rslt = bme280_get_sensor_data(BME280_ALL, &comp_data, dev); print_sensor_data(&comp_data); } @@ -164,7 +164,7 @@ int8_t stream_sensor_data_normal_mode(struct bme280_dev *dev) printf("Temperature, Pressure, Humidity\r\n"); while (1) { /* Delay while the sensor completes a measurement */ - dev->delay_ms(70, dev->intf_ptr); + dev->delay_us(70, dev->intf_ptr); rslt = bme280_get_sensor_data(BME280_ALL, &comp_data, dev); print_sensor_data(&comp_data); } @@ -185,11 +185,11 @@ void print_sensor_data(struct bme280_data *comp_data) ### Templates for function pointers ``` c -void user_delay_ms(uint32_t period, void *intf_ptr) +void user_delay_us(uint32_t period, void *intf_ptr) { /* * Return control or wait, - * for a period amount of milliseconds + * for a period amount of microseconds */ } @@ -219,7 +219,7 @@ int8_t user_spi_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *in return rslt; } -int8_t user_spi_write(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr) +int8_t user_spi_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr) { int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */ @@ -272,7 +272,7 @@ int8_t user_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *in return rslt; } -int8_t user_i2c_write(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr) +int8_t user_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr) { int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */ diff --git a/bme280.c b/bme280.c index cabefc2..ca356d1 100644 --- a/bme280.c +++ b/bme280.c @@ -850,7 +850,7 @@ int8_t bme280_compensate_data(uint8_t sensor_comp, } /*! - * @brief This API is used to calculate the maximum delay in milliseconds required for the + * @brief This API is used to calculate the maximum delay in microseconds required for the * temperature/pressure/humidity(which ever at enabled) measurement to complete. */ uint32_t bme280_cal_meas_delay(const struct bme280_settings *settings) diff --git a/bme280.h b/bme280.h index fd95990..b5e79ea 100644 --- a/bme280.h +++ b/bme280.h @@ -377,13 +377,13 @@ int8_t bme280_compensate_data(uint8_t sensor_comp, * \code * uint32_t bme280_cal_meas_delay(const struct bme280_settings *settings); * \endcode - * @brief This API is used to calculate the maximum delay in milliseconds required for the + * @brief This API is used to calculate the maximum delay in microseconds required for the * temperature/pressure/humidity(which ever are enabled) measurement to complete. * The delay depends upon the number of sensors enabled and their oversampling configuration. * * @param[in] settings : contains the oversampling configurations. * - * @return delay required in milliseconds. + * @return delay required in microseconds. * */ uint32_t bme280_cal_meas_delay(const struct bme280_settings *settings); diff --git a/bme280_defs.h b/bme280_defs.h index 686ba6a..adc4a6b 100644 --- a/bme280_defs.h +++ b/bme280_defs.h @@ -218,7 +218,7 @@ #define BME280_MEAS_OFFSET UINT16_C(1250) #define BME280_MEAS_DUR UINT16_C(2300) #define BME280_PRES_HUM_MEAS_OFFSET UINT16_C(575) -#define BME280_MEAS_SCALING_FACTOR UINT16_C(1000) +#define BME280_MEAS_SCALING_FACTOR UINT16_C(1) /**\name Standby duration selection macros */ #define BME280_STANDBY_TIME_0_5_MS (0x00)