1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/sht2x/include/sht2x_params.h
2022-12-14 21:47:32 +01:00

145 lines
3.6 KiB
C

/*
* Copyright (C) 2016,2017,2018 Kees Bakker, SODAQ
* Copyright (C) 2017 George Psimenos
* Copyright (C) 2018 Steffen Robertz
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* @ingroup drivers_sht2x
*
* @{
* @file
* @brief Default configuration for SHT2x humidity and temperature sensor
*
* @author Kees Bakker <kees@sodaq.com>
* @author George Psimenos <gp7g14@soton.ac.uk>
* @author Steffen Robertz <steffen.robertz@rwth-aachen.de>
*/
#ifndef SHT2X_PARAMS_H
#define SHT2X_PARAMS_H
#include "sht2x.h"
#include "saul_reg.h"
#ifdef __cplusplus
extern "C" {
#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 */
/**
* @name Default SHT2x hardware configuration
* @{
*/
#ifndef SHT2X_PARAM_I2C_DEV
/** I2C device used */
#define SHT2X_PARAM_I2C_DEV (I2C_DEV(0))
#endif
#ifndef SHT2X_PARAM_I2C_ADDR
/** I2C slave slave of the SHT2x sensor */
#define SHT2X_PARAM_I2C_ADDR (0x40)
#endif
/** @} */
/**
* @name Default sensor configuration for the SHT2x sensor
* @{
*/
#ifndef SHT2X_PARAM_RESOLUTION
/** SHT2x resolution */
#define SHT2X_PARAM_RESOLUTION (CONFIG_SHT2X_RESOLUTION)
#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, \
.i2c_addr = SHT2X_PARAM_I2C_ADDR, \
.resolution = SHT2X_PARAM_RESOLUTION, \
.measure_mode = SHT2X_PARAM_MEASURE_MODE, \
.is_crc_enabled = SHT2X_PARAM_CRC_MODE, \
}
#ifndef SHT2X_SAUL_INFO
/** Default SAUL device info */
#define SHT2X_SAUL_INFO { .name = "sht2x" }
#endif
/**@}*/
/**
* @brief Configure SHT2X
*/
static const sht2x_params_t sht2x_params[] =
{
#ifdef SHT2X_PARAMS_BOARD
SHT2X_PARAMS_BOARD,
#else
SHT2X_PARAMS_DEFAULT,
#endif
};
/**
* @brief Get the number of configured SHT2X devices
*/
#define SHT2X_NUMOF ARRAY_SIZE(sht2x_params)
/**
* @brief Configuration details of SAUL registry entries
*
* This array contains static details of the sensors
* for each device. Please be aware that the indexes are used in
* auto_init_sht2x, so make sure the indexes match.
*/
static const saul_reg_info_t sht2x_saul_reg_info[SHT2X_NUMOF] =
{
SHT2X_SAUL_INFO
};
#ifdef __cplusplus
}
#endif
#endif /* SHT2X_PARAMS_H */
/** @} */