aboutsummaryrefslogtreecommitdiffstats
path: root/os/ex/ST/lps25h.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/ex/ST/lps25h.h')
-rw-r--r--os/ex/ST/lps25h.h368
1 files changed, 184 insertions, 184 deletions
diff --git a/os/ex/ST/lps25h.h b/os/ex/ST/lps25h.h
index 4dd453b70..ffc894cbb 100644
--- a/os/ex/ST/lps25h.h
+++ b/os/ex/ST/lps25h.h
@@ -43,7 +43,7 @@
/**
* @brief LPS25H driver version string.
*/
-#define EX_LPS25H_VERSION "1.1.0"
+#define EX_LPS25H_VERSION "1.1.1"
/**
* @brief LPS25H driver version major number.
@@ -58,22 +58,22 @@
/**
* @brief LPS25H driver version patch number.
*/
-#define EX_LPS25H_PATCH 0
+#define EX_LPS25H_PATCH 1
/** @} */
/**
- * @brief LPS25H barometer subsystem characteristics.
+ * @brief LPS25H barometer subsystem characteristics.
* @note Sensitivity is expressed as hPa/LSB whereas hPa stand for
* hectopascal.
* @note Bias is expressed as hPa.
*
* @{
- */
-#define LPS25H_BARO_NUMBER_OF_AXES 1U
+ */
+#define LPS25H_BARO_NUMBER_OF_AXES 1U
#define LPS25H_BARO_SENS 0.00024414f
-#define LPS25H_BARO_BIAS 0.0f
-/** @} */
+#define LPS25H_BARO_BIAS 0.0f
+/** @} */
/**
* @brief LPS25H thermometer subsystem characteristics.
@@ -87,65 +87,65 @@
#define LPS25H_THERMO_SENS 0.00208333f
#define LPS25H_THERMO_BIAS -42.5f
/** @} */
-
-/**
- * @name LPS25H communication interfaces related bit masks
- * @{
- */
-#define LPS25H_DI_MASK 0xFF
-#define LPS25H_DI(n) (1 << n)
-#define LPS25H_AD_MASK 0x3F
-#define LPS25H_AD(n) (1 << n)
-#define LPS25H_MS (1 << 6)
+
+/**
+ * @name LPS25H communication interfaces related bit masks
+ * @{
+ */
+#define LPS25H_DI_MASK 0xFF
+#define LPS25H_DI(n) (1 << n)
+#define LPS25H_AD_MASK 0x3F
+#define LPS25H_AD(n) (1 << n)
+#define LPS25H_MS (1 << 6)
#define LPS25H_RW (1 << 7)
-#define LPS25H_SUB_MS (1 << 7)
-/** @} */
-
-/**
- * @name LPS25H register addresses
- * @{
- */
+#define LPS25H_SUB_MS (1 << 7)
+/** @} */
+
+/**
+ * @name LPS25H register addresses
+ * @{
+ */
#define LPS25H_AD_REF_P_XL 0x08
#define LPS25H_AD_REF_P_L 0x09
#define LPS25H_AD_REF_P_H 0x0A
#define LPS25H_AD_WHO_AM_I 0x0F
-#define LPS25H_AD_RES_CONF 0x10
-#define LPS25H_AD_CTRL_REG1 0x20
-#define LPS25H_AD_CTRL_REG2 0x21
-#define LPS25H_AD_CTRL_REG3 0x22
+#define LPS25H_AD_RES_CONF 0x10
+#define LPS25H_AD_CTRL_REG1 0x20
+#define LPS25H_AD_CTRL_REG2 0x21
+#define LPS25H_AD_CTRL_REG3 0x22
#define LPS25H_AD_CTRL_REG4 0x23
#define LPS25H_AD_INT_CFG 0x24
#define LPS25H_AD_INT_SRC 0x25
-#define LPS25H_AD_STATUS_REG 0x27
-#define LPS25H_AD_PRESS_OUT_XL 0x28
-#define LPS25H_AD_PRESS_OUT_L 0x29
-#define LPS25H_AD_PRESS_OUT_H 0x2A
-#define LPS25H_AD_TEMP_OUT_L 0x2B
-#define LPS25H_AD_TEMP_OUT_H 0x2C
-#define LPS25H_AD_FIFO_CTRL 0x2E
-#define LPS25H_AD_FIFO_SRC 0x2F
+#define LPS25H_AD_STATUS_REG 0x27
+#define LPS25H_AD_PRESS_OUT_XL 0x28
+#define LPS25H_AD_PRESS_OUT_L 0x29
+#define LPS25H_AD_PRESS_OUT_H 0x2A
+#define LPS25H_AD_TEMP_OUT_L 0x2B
+#define LPS25H_AD_TEMP_OUT_H 0x2C
+#define LPS25H_AD_FIFO_CTRL 0x2E
+#define LPS25H_AD_FIFO_SRC 0x2F
#define LPS25H_AD_THS_P_L 0x30
#define LPS25H_AD_THS_P_H 0x31
#define LPS25H_AD_RPDS_L 0x39
-#define LPS25H_AD_RPDS_H 0x3A
-/** @} */
-
-/**
- * @name LPS25H_CTRL_REG1 register bits definitions
- * @{
- */
-#define LPS25H_CTRL_REG1_MASK 0xFF
-#define LPS25H_CTRL_REG1_SIM (1 << 0)
-#define LPS25H_CTRL_REG1_RESET_AZ (1 << 1)
-#define LPS25H_CTRL_REG1_BDU (1 << 2)
-#define LPS25H_CTRL_REG1_DIFF_EN (1 << 3)
-#define LPS25H_CTRL_REG1_ODR0 (1 << 4)
-#define LPS25H_CTRL_REG1_ODR1 (1 << 5)
-#define LPS25H_CTRL_REG1_ODR2 (1 << 6)
-#define LPS25H_CTRL_REG1_PD (1 << 7)
-/** @} */
-
+#define LPS25H_AD_RPDS_H 0x3A
+/** @} */
+
+/**
+ * @name LPS25H_CTRL_REG1 register bits definitions
+ * @{
+ */
+#define LPS25H_CTRL_REG1_MASK 0xFF
+#define LPS25H_CTRL_REG1_SIM (1 << 0)
+#define LPS25H_CTRL_REG1_RESET_AZ (1 << 1)
+#define LPS25H_CTRL_REG1_BDU (1 << 2)
+#define LPS25H_CTRL_REG1_DIFF_EN (1 << 3)
+#define LPS25H_CTRL_REG1_ODR0 (1 << 4)
+#define LPS25H_CTRL_REG1_ODR1 (1 << 5)
+#define LPS25H_CTRL_REG1_ODR2 (1 << 6)
+#define LPS25H_CTRL_REG1_PD (1 << 7)
+/** @} */
+
/**
* @name LPS25H_CTRL_REG2 register bits definitions
* @{
@@ -158,8 +158,8 @@
#define LPS25H_CTRL_REG2_WTM_EN (1 << 5)
#define LPS25H_CTRL_REG2_FIFO_EN (1 << 6)
#define LPS25H_CTRL_REG2_BOOT (1 << 7)
-/** @} */
-
+/** @} */
+
/**
* @name LPS25H_CTRL_REG3 register bits definitions
* @{
@@ -180,7 +180,7 @@
#define LPS25H_CTRL_REG4_P1_OVERRUN (1 << 1)
#define LPS25H_CTRL_REG4_P1_WTM (1 << 2)
#define LPS25H_CTRL_REG4_P1_EMPTY (1 << 3)
-/** @} */
+/** @} */
/**
* @name LPS25H_INT1_CFG register bits definitions
@@ -202,10 +202,10 @@
#define LPS25H_INT1_SRC_IA (1 << 2)
/** @} */
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
/**
* @name Configuration options
* @{
@@ -257,12 +257,12 @@
#if !defined(LPS25H_USE_ADVANCED) || defined(__DOXYGEN__)
#define LPS25H_USE_ADVANCED FALSE
#endif
-/** @} */
-
-/*===========================================================================*/
-/* Derived constants and error checks. */
-/*===========================================================================*/
-
+/** @} */
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
#if !(LPS25H_USE_SPI ^ LPS25H_USE_I2C)
#error "LPS25H_USE_SPI and LPS25H_USE_I2C cannot be both true or both false"
#endif
@@ -290,13 +290,13 @@
#error "LPS25H over SPI still not supported"
#endif
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/**
- * @name LPS25H data structures and types.
- * @{
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+/**
+ * @name LPS25H data structures and types.
+ * @{
*/
/**
* @brief Structure representing a LPS25H driver.
@@ -310,17 +310,17 @@ typedef enum {
LPS25H_SAD_GND = 0x5C, /**< Slave Address when SA0 is to GND */
LPS25H_SAD_VCC = 0x5D /**< Slave Address when SA0 is to VCC */
}lps25h_sad_t;
-
-/**
- * @brief LPS25H output data rate and bandwidth.
- */
+
+/**
+ * @brief LPS25H output data rate and bandwidth.
+ */
typedef enum {
- LPS25H_ODR_ONE_SHOT = 0x00, /**< One shot. */
- LPS25H_ODR_1HZ = 0x10, /**< Output data rate 1 Hz. */
- LPS25H_ODR_7HZ = 0x20, /**< Output data rate 7 Hz. */
- LPS25H_ODR_12P5HZ = 0x30, /**< Output data rate 12.5 Hz. */
- LPS25H_ODR_25HZ = 0x40 /**< Output data rate 25 Hz. */
-}lps25h_odr_t;
+ LPS25H_ODR_ONE_SHOT = 0x00, /**< One shot. */
+ LPS25H_ODR_1HZ = 0x10, /**< Output data rate 1 Hz. */
+ LPS25H_ODR_7HZ = 0x20, /**< Output data rate 7 Hz. */
+ LPS25H_ODR_12P5HZ = 0x30, /**< Output data rate 12.5 Hz. */
+ LPS25H_ODR_25HZ = 0x40 /**< Output data rate 25 Hz. */
+}lps25h_odr_t;
/**
* @brief LPS25H pressure resolution.
@@ -341,60 +341,60 @@ typedef enum {
LPS25H_AVGT_128 = 0x08, /**< Number of internal average is 128. */
LPS25H_AVGT_512 = 0x0C, /**< Number of internal average is 512. */
}lps25h_avgt_t;
-
-/**
- * @brief LPS25H block data update.
- */
-typedef enum {
- LPS25H_BDU_CONTINUOUS = 0x00, /**< Block data continuously updated. */
- LPS25H_BDU_BLOCKED = 0x40 /**< Block data updated after reading. */
-}lps25h_bdu_t;
-
-/**
- * @brief Driver state machine possible states.
- */
-typedef enum {
- LPS25H_UNINIT = 0, /**< Not initialized. */
- LPS25H_STOP = 1, /**< Stopped. */
- LPS25H_READY = 2, /**< Ready. */
-} lps25h_state_t;
-
-/**
- * @brief LPS25H configuration structure.
- */
-typedef struct {
-
-#if LPS25H_USE_SPI || defined(__DOXYGEN__)
- /**
- * @brief SPI driver associated to this LPS25H.
- */
- SPIDriver *spip;
- /**
- * @brief SPI configuration associated to this LPS25H.
- */
- const SPIConfig *spicfg;
-#endif /* LPS25H_USE_SPI */
-#if LPS25H_USE_I2C || defined(__DOXYGEN__)
- /**
- * @brief I2C driver associated to this LPS25H.
- */
- I2CDriver *i2cp;
- /**
- * @brief I2C configuration associated to this LPS25H.
- */
+
+/**
+ * @brief LPS25H block data update.
+ */
+typedef enum {
+ LPS25H_BDU_CONTINUOUS = 0x00, /**< Block data continuously updated. */
+ LPS25H_BDU_BLOCKED = 0x40 /**< Block data updated after reading. */
+}lps25h_bdu_t;
+
+/**
+ * @brief Driver state machine possible states.
+ */
+typedef enum {
+ LPS25H_UNINIT = 0, /**< Not initialized. */
+ LPS25H_STOP = 1, /**< Stopped. */
+ LPS25H_READY = 2, /**< Ready. */
+} lps25h_state_t;
+
+/**
+ * @brief LPS25H configuration structure.
+ */
+typedef struct {
+
+#if LPS25H_USE_SPI || defined(__DOXYGEN__)
+ /**
+ * @brief SPI driver associated to this LPS25H.
+ */
+ SPIDriver *spip;
+ /**
+ * @brief SPI configuration associated to this LPS25H.
+ */
+ const SPIConfig *spicfg;
+#endif /* LPS25H_USE_SPI */
+#if LPS25H_USE_I2C || defined(__DOXYGEN__)
+ /**
+ * @brief I2C driver associated to this LPS25H.
+ */
+ I2CDriver *i2cp;
+ /**
+ * @brief I2C configuration associated to this LPS25H.
+ */
const I2CConfig *i2ccfg;
/**
* @brief LPS25H slave address
*/
- lps25h_sad_t slaveaddress;
-#endif /* LPS25H_USE_I2C */
- /**
- * @brief LPS25H barometer subsystem initial sensitivity.
- */
- float *barosensitivity;
- /**
- * @brief LPS25H barometer subsystem initial bias.
- */
+ lps25h_sad_t slaveaddress;
+#endif /* LPS25H_USE_I2C */
+ /**
+ * @brief LPS25H barometer subsystem initial sensitivity.
+ */
+ float *barosensitivity;
+ /**
+ * @brief LPS25H barometer subsystem initial bias.
+ */
float *barobias;
/**
* @brief LPS25H thermometer subsystem initial sensitivity.
@@ -403,15 +403,15 @@ typedef struct {
/**
* @brief LPS25H thermometer subsystem initial bias.
*/
- float *thermobias;
- /**
- * @brief LPS25H output data rate selection.
- */
- lps25h_odr_t outputdatarate;
-#if LPS25H_USE_ADVANCED || defined(__DOXYGEN__)
- /**
- * @brief LPS25H block data update.
- */
+ float *thermobias;
+ /**
+ * @brief LPS25H output data rate selection.
+ */
+ lps25h_odr_t outputdatarate;
+#if LPS25H_USE_ADVANCED || defined(__DOXYGEN__)
+ /**
+ * @brief LPS25H block data update.
+ */
lps25h_bdu_t blockdataupdate;
/**
* @brief LPS25H barometer subsystem resolution.
@@ -420,8 +420,8 @@ typedef struct {
/**
* @brief LPS25H thermometer subsystem resolution.
*/
- lps25h_avgt_t thermoresolution;
-#endif
+ lps25h_avgt_t thermoresolution;
+#endif
} LPS25HConfig;
/**
@@ -445,15 +445,15 @@ typedef struct {
struct LPS25HVMT {
_lps25h_methods
};
-
-/**
- * @brief @p LPS25HDriver specific data.
- */
-#define _lps25h_data \
- /* Driver state.*/ \
- lps25h_state_t state; \
- /* Current configuration data.*/ \
- const LPS25HConfig *config; \
+
+/**
+ * @brief @p LPS25HDriver specific data.
+ */
+#define _lps25h_data \
+ /* Driver state.*/ \
+ lps25h_state_t state; \
+ /* Current configuration data.*/ \
+ const LPS25HConfig *config; \
/* Barometer subsystem axes number.*/ \
size_t baroaxes; \
/* Barometer subsystem current sensitivity.*/ \
@@ -465,25 +465,25 @@ struct LPS25HVMT {
/* Thermometer subsystem current sensitivity.*/ \
float thermosensitivity; \
/* Thermometer subsystem current bias.*/ \
- float thermobias;
-
+ float thermobias;
+
/**
* @brief LPS25H 2-axis barometer/thermometer class.
- */
-struct LPS25HDriver {
+ */
+struct LPS25HDriver {
/** @brief Virtual Methods Table.*/
const struct LPS25HVMT *vmt;
/** @brief Base barometer interface.*/
BaseBarometer baro_if;
/** @brief Base thermometer interface.*/
BaseThermometer thermo_if;
- _lps25h_data
-};
-/** @} */
-
-/*===========================================================================*/
-/* Driver macros. */
-/*===========================================================================*/
+ _lps25h_data
+};
+/** @} */
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
/**
* @brief Return the number of axes of the BaseBarometer.
@@ -720,22 +720,22 @@ struct LPS25HDriver {
*/
#define lps25hThermometerResetSensitivity(devp) \
thermometerResetSensitivity(&((devp)->thermo_if))
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void lps25hObjectInit(LPS25HDriver *devp);
- void lps25hStart(LPS25HDriver *devp, const LPS25HConfig *config);
- void lps25hStop(LPS25HDriver *devp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LPS25H_H_ */
-
-/** @} */
-
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void lps25hObjectInit(LPS25HDriver *devp);
+ void lps25hStart(LPS25HDriver *devp, const LPS25HConfig *config);
+ void lps25hStop(LPS25HDriver *devp);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LPS25H_H_ */
+
+/** @} */
+