mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
drivers/sht2x: extend Kconfig by sensor parameters
This commit is contained in:
parent
ff3cbd13ea
commit
009afd1173
@ -5,15 +5,65 @@
|
|||||||
# directory for more details.
|
# directory for more details.
|
||||||
#
|
#
|
||||||
|
|
||||||
config MODULE_SHT2X
|
config HAVE_SHT2X
|
||||||
bool "SHT2x temperature and humidity sensor"
|
bool
|
||||||
|
select MODULE_SHT2X if MODULE_SAUL_DEFAULT
|
||||||
|
help
|
||||||
|
Indicates that a SHT2x humidity and temperature sensor is present.
|
||||||
|
|
||||||
|
menuconfig MODULE_SHT2X
|
||||||
|
bool "SHT2x humidity and temperature sensor"
|
||||||
depends on HAS_PERIPH_I2C
|
depends on HAS_PERIPH_I2C
|
||||||
depends on TEST_KCONFIG
|
depends on TEST_KCONFIG
|
||||||
select MODULE_PERIPH_I2C
|
select MODULE_PERIPH_I2C
|
||||||
select MODULE_ZTIMER_MSEC
|
select MODULE_ZTIMER_MSEC
|
||||||
|
|
||||||
config HAVE_SHT2X
|
if MODULE_SHT2X
|
||||||
bool
|
|
||||||
select MODULE_SHT2X if MODULE_SAUL_DEFAULT
|
choice
|
||||||
|
bool "Measurement Resolution"
|
||||||
|
default SHT2X_RES_12_14BIT
|
||||||
|
|
||||||
|
config SHT2X_RES_12_14BIT
|
||||||
|
bool "Humidity with 12 bit, Temperature with 14 bit"
|
||||||
|
config SHT2X_RES_11_11BIT
|
||||||
|
bool "Humidity with 11 bit, Temperature with 11 bit"
|
||||||
|
config SHT2X_RES_10_13BIT
|
||||||
|
bool "Humidity with 10 bit, Temperature with 13 bit"
|
||||||
|
config SHT2X_RES_8_12BIT
|
||||||
|
bool "Humidity with 8 bit, Temperature with 12 bit"
|
||||||
help
|
help
|
||||||
Indicates that a SHT2x temperature and humidity sensor is present.
|
Measurement resolution
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
choice
|
||||||
|
bool "Measurement Mode"
|
||||||
|
default SHT2X_MEASURE_MODE_NO_HOLD
|
||||||
|
|
||||||
|
config SHT2X_MEASURE_MODE_NO_HOLD
|
||||||
|
bool "No Hold"
|
||||||
|
help
|
||||||
|
In Hold mode the measurement is started and the sensor blocks the
|
||||||
|
master by clock stretching until the measurement is finished. Thus,
|
||||||
|
in this mode, both the I2C bus and the processor are blocked for the
|
||||||
|
entire measurement duration, which can be up to 85 ms for temperature
|
||||||
|
measurement and up to 29 ms for humidity measurement, depending on the
|
||||||
|
resolution. Therefore, the no-hold mode should be used, where the
|
||||||
|
measurement is started and a timer is used to fetch the results.
|
||||||
|
This way neither the I2C bus nor the processor are blocked for the
|
||||||
|
duration of the measurement. Furthermore, the hold mode requires that
|
||||||
|
the MCU supports clock stretching.
|
||||||
|
config SHT2X_MEASURE_MODE_HOLD
|
||||||
|
bool "Hold"
|
||||||
|
help
|
||||||
|
In no-hold mode the measurement is started and a timer is used to
|
||||||
|
fetch the results. This way neither the I2C bus nor the processor
|
||||||
|
are blocked for the duration of the measurement.
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config SHT2X_CRC_MODE
|
||||||
|
bool "CRC check"
|
||||||
|
help
|
||||||
|
Enable to check the CRC of measurement data.
|
||||||
|
|
||||||
|
endif # MODULE_SHT2X
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
*
|
*
|
||||||
* @{
|
* @{
|
||||||
* @file
|
* @file
|
||||||
* @brief Default configuration for SHT2X
|
* @brief Default configuration for SHT2x humidity and temperature sensor
|
||||||
*
|
*
|
||||||
* @author Kees Bakker <kees@sodaq.com>
|
* @author Kees Bakker <kees@sodaq.com>
|
||||||
* @author George Psimenos <gp7g14@soton.ac.uk>
|
* @author George Psimenos <gp7g14@soton.ac.uk>
|
||||||
@ -30,26 +30,70 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !DOXYGEN
|
||||||
|
/* Mapping of Kconfig defines to the respective driver enumeration values */
|
||||||
|
|
||||||
|
#if CONFIG_SHT2X_RES_12_14BIT
|
||||||
|
#define CONFIG_SHT2X_RESOLUTION (SHT2X_RES_12_14BIT)
|
||||||
|
#elif CONFIG_SHT2X_RES_11_11BIT
|
||||||
|
#define CONFIG_SHT2X_RESOLUTION (SHT2X_RES_11_11BIT)
|
||||||
|
#elif CONFIG_SHT2X_RES_10_13BIT
|
||||||
|
#define CONFIG_SHT2X_RESOLUTION (SHT2X_RES_10_13BIT)
|
||||||
|
#elif CONFIG_SHT2X_RES_8_12BIT
|
||||||
|
#define CONFIG_SHT2X_RESOLUTION (SHT2X_RES_8_12BIT)
|
||||||
|
#else
|
||||||
|
#define CONFIG_SHT2X_RESOLUTION (SHT2X_RES_12_14BIT)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_SHT2X_MEASURE_MODE_HOLD
|
||||||
|
#define CONFIG_SHT2X_MEASURE_MODE (SHT2X_MEASURE_MODE_HOLD)
|
||||||
|
#elif CONFIG_SHT2X_MEASURE_MODE_NO_HOLD
|
||||||
|
#define CONFIG_SHT2X_MEASURE_MODE (SHT2X_MEASURE_MODE_NO_HOLD)
|
||||||
|
#else
|
||||||
|
#define CONFIG_SHT2X_MEASURE_MODE (SHT2X_MEASURE_MODE_NO_HOLD)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_SHT2X_CRC_MODE
|
||||||
|
#define CONFIG_SHT2X_CRC_MODE (1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !DOXYGEN */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set default configuration parameters for the SHT2X
|
* @name Default SHT2x hardware configuration
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
#ifndef SHT2X_PARAM_I2C_DEV
|
#ifndef SHT2X_PARAM_I2C_DEV
|
||||||
|
/** I2C device used */
|
||||||
#define SHT2X_PARAM_I2C_DEV (I2C_DEV(0))
|
#define SHT2X_PARAM_I2C_DEV (I2C_DEV(0))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHT2X_PARAM_I2C_ADDR
|
#ifndef SHT2X_PARAM_I2C_ADDR
|
||||||
|
/** I2C slave slave of the SHT2x sensor */
|
||||||
#define SHT2X_PARAM_I2C_ADDR (0x40)
|
#define SHT2X_PARAM_I2C_ADDR (0x40)
|
||||||
#endif
|
#endif
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Default sensor configuration for the SHT2x sensor
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
#ifndef SHT2X_PARAM_RESOLUTION
|
#ifndef SHT2X_PARAM_RESOLUTION
|
||||||
#define SHT2X_PARAM_RESOLUTION (SHT2X_RES_12_14BIT)
|
/** SHT2x resolution */
|
||||||
#endif
|
#define SHT2X_PARAM_RESOLUTION (CONFIG_SHT2X_RESOLUTION)
|
||||||
#ifndef SHT2X_PARAM_MEASURE_MODE
|
|
||||||
#define SHT2X_PARAM_MEASURE_MODE (SHT2X_MEASURE_MODE_HOLD)
|
|
||||||
#endif
|
|
||||||
#ifndef SHT2X_PARAM_CRC_MODE
|
|
||||||
#define SHT2X_PARAM_CRC_MODE (1)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHT2X_PARAM_MEASURE_MODE
|
||||||
|
/** SHT2x measurement mode */
|
||||||
|
#define SHT2X_PARAM_MEASURE_MODE (CONFIG_SHT2X_MEASURE_MODE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHT2X_PARAM_CRC_MODE
|
||||||
|
/** SHT2x CRC mode */
|
||||||
|
#define SHT2X_PARAM_CRC_MODE (CONFIG_SHT2X_CRC_MODE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Default SHT2x parameter set */
|
||||||
#define SHT2X_PARAMS_DEFAULT {.i2c_dev = SHT2X_PARAM_I2C_DEV, \
|
#define SHT2X_PARAMS_DEFAULT {.i2c_dev = SHT2X_PARAM_I2C_DEV, \
|
||||||
.i2c_addr = SHT2X_PARAM_I2C_ADDR, \
|
.i2c_addr = SHT2X_PARAM_I2C_ADDR, \
|
||||||
.resolution = SHT2X_PARAM_RESOLUTION, \
|
.resolution = SHT2X_PARAM_RESOLUTION, \
|
||||||
@ -58,6 +102,7 @@ extern "C" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef SHT2X_SAUL_INFO
|
#ifndef SHT2X_SAUL_INFO
|
||||||
|
/** Default SAUL device info */
|
||||||
#define SHT2X_SAUL_INFO { .name = "sht2x" }
|
#define SHT2X_SAUL_INFO { .name = "sht2x" }
|
||||||
#endif
|
#endif
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
Loading…
Reference in New Issue
Block a user