diff options
| author | Rocco Marco Guglielmi <roccomarco.guglielmi@gmail.com> | 2018-05-02 13:18:38 +0000 | 
|---|---|---|
| committer | Rocco Marco Guglielmi <roccomarco.guglielmi@gmail.com> | 2018-05-02 13:18:38 +0000 | 
| commit | 021bd52c4ab8f705097f45e3f3a4bf43a86ee1cb (patch) | |
| tree | 6fae9b366e062b650af952f68e76647318ce0eb9 /os/ex | |
| parent | e30edc0e9ca5fbc15c11b0ce744099b848611624 (diff) | |
| download | ChibiOS-021bd52c4ab8f705097f45e3f3a4bf43a86ee1cb.tar.gz ChibiOS-021bd52c4ab8f705097f45e3f3a4bf43a86ee1cb.tar.bz2 ChibiOS-021bd52c4ab8f705097f45e3f3a4bf43a86ee1cb.zip | |
Fixed Bug #943
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11985 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os/ex')
| -rw-r--r-- | os/ex/ST/hts221.c | 2 | ||||
| -rw-r--r-- | os/ex/ST/hts221.h | 4 | ||||
| -rw-r--r-- | os/ex/ST/l3gd20.c | 4 | ||||
| -rw-r--r-- | os/ex/ST/l3gd20.h | 678 | ||||
| -rw-r--r-- | os/ex/ST/lis302dl.c | 7 | ||||
| -rw-r--r-- | os/ex/ST/lis3dsh.c | 5 | ||||
| -rw-r--r-- | os/ex/ST/lis3dsh.h | 4 | ||||
| -rw-r--r-- | os/ex/ST/lis3mdl.c | 5 | ||||
| -rw-r--r-- | os/ex/ST/lis3mdl.h | 13 | ||||
| -rw-r--r-- | os/ex/ST/lps22hb.c | 2 | ||||
| -rw-r--r-- | os/ex/ST/lps25h.c | 2 | ||||
| -rw-r--r-- | os/ex/ST/lps25h.h | 368 | ||||
| -rw-r--r-- | os/ex/ST/lsm303agr.c | 2 | ||||
| -rw-r--r-- | os/ex/ST/lsm303agr.h | 6 | ||||
| -rw-r--r-- | os/ex/ST/lsm303dlhc.c | 4 | ||||
| -rw-r--r-- | os/ex/ST/lsm303dlhc.h | 10 | ||||
| -rw-r--r-- | os/ex/ST/lsm6ds0.c | 9 | ||||
| -rw-r--r-- | os/ex/ST/lsm6ds0.h | 6 | ||||
| -rw-r--r-- | os/ex/ST/lsm6dsl.c | 9 | ||||
| -rw-r--r-- | os/ex/ST/lsm6dsl.h | 2 | 
20 files changed, 570 insertions, 572 deletions
| diff --git a/os/ex/ST/hts221.c b/os/ex/ST/hts221.c index 622956693..59a020926 100644 --- a/os/ex/ST/hts221.c +++ b/os/ex/ST/hts221.c @@ -460,7 +460,7 @@ static msg_t thermo_read_raw(void *ip, int32_t axes[]) {   *          BaseThermometer axes number.
   *
   * @param[in] ip        pointer to @p BaseThermometer interface.
 - * @param[out] axes     a buffer which would be filled with cooked data.
 + * @param[out] axis     a buffer which would be filled with cooked data.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
 diff --git a/os/ex/ST/hts221.h b/os/ex/ST/hts221.h index 1bd064523..da2fa2d1d 100644 --- a/os/ex/ST/hts221.h +++ b/os/ex/ST/hts221.h @@ -44,7 +44,7 @@  /**
   * @brief   HTS221 driver version string.
   */
 -#define EX_HTS221_VERSION                   "1.1.0"
 +#define EX_HTS221_VERSION                   "1.1.1"
  /**
   * @brief   HTS221 driver version major number.
 @@ -59,7 +59,7 @@  /**
   * @brief   HTS221 driver version patch number.
   */
 -#define EX_HTS221_PATCH                     0
 +#define EX_HTS221_PATCH                     1
  /** @} */
  /**
 diff --git a/os/ex/ST/l3gd20.c b/os/ex/ST/l3gd20.c index b520aaf38..9fa670260 100644 --- a/os/ex/ST/l3gd20.c +++ b/os/ex/ST/l3gd20.c @@ -189,7 +189,7 @@ static msg_t gyro_read_cooked(void *ip, float axes[]) {   * @brief   Samples bias values for the BaseGyroscope.
   * @note    The L3GD20 shall not be moved during the whole procedure.
   * @note    After this function internal bias is automatically updated.
 - * @note    The behavior of this function depends on @P L3GD20_BIAS_ACQ_TIMES
 + * @note    The behavior of this function depends on @p L3GD20_BIAS_ACQ_TIMES
   *          and @p L3GD20_BIAS_SETTLING_US.
   *
   * @param[in] ip        pointer to @p BaseGyroscope interface.
 @@ -368,7 +368,7 @@ static msg_t gyro_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p BaseGyroscope interface.
 + * @param[in] devp      pointer to @p BaseGyroscope interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/l3gd20.h b/os/ex/ST/l3gd20.h index fdeb600f6..bea56432c 100644 --- a/os/ex/ST/l3gd20.h +++ b/os/ex/ST/l3gd20.h @@ -1,72 +1,72 @@ -/*
 -    ChibiOS - Copyright (C) 2016..2018 Rocco Marco Guglielmi
 -
 -    This file is part of ChibiOS.
 -
 -    ChibiOS is free software; you can redistribute it and/or modify
 -    it under the terms of the GNU General Public License as published by
 -    the Free Software Foundation; either version 3 of the License, or
 -    (at your option) any later version.
 -
 -    ChibiOS is distributed in the hope that it will be useful,
 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -    GNU General Public License for more details.
 -
 -    You should have received a copy of the GNU General Public License
 -    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -	
 -*/
 -
 -/**
 - * @file    l3gd20.h
 - * @brief   L3GD20 MEMS interface module header.
 - *
 - * @addtogroup L3GD20
 - * @ingroup EX_ST
 - * @{
 - */
 -#ifndef _L3GD20_H_
 -#define _L3GD20_H_
 -
 -#include "hal_gyroscope.h"
 -
 -/*===========================================================================*/
 -/* Driver constants.                                                         */
 -/*===========================================================================*/
 -
 -/**
 - * @name    Version identification
 - * @{
 - */
 -/**
 - * @brief   L3GD20 driver version string.
 - */
 -#define EX_L3GD20_VERSION                   "1.1.0"
 -
 -/**
 - * @brief   L3GD20 driver version major number.
 - */
 -#define EX_L3GD20_MAJOR                     1
 -
 -/**
 - * @brief   L3GD20 driver version minor number.
 - */
 -#define EX_L3GD20_MINOR                     1
 -
 -/**
 - * @brief   L3GD20 driver version patch number.
 - */
 -#define EX_L3GD20_PATCH                     0
 -/** @} */
 -
 -/**
 - * @brief   L3GD20 gyroscope system characteristics.
 - * @note    Sensitivity is expressed as DPS/LSB whereas DPS stand for Degree
 - *          per second [°/s].
 - * @note    Bias is expressed as DPS.
 - *
 - * @{
 +/* +    ChibiOS - Copyright (C) 2016..2018 Rocco Marco Guglielmi + +    This file is part of ChibiOS. + +    ChibiOS is free software; you can redistribute it and/or modify +    it under the terms of the GNU General Public License as published by +    the Free Software Foundation; either version 3 of the License, or +    (at your option) any later version. + +    ChibiOS is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    GNU General Public License for more details. + +    You should have received a copy of the GNU General Public License +    along with this program.  If not, see <http://www.gnu.org/licenses/>. +	 +*/ + +/** + * @file    l3gd20.h + * @brief   L3GD20 MEMS interface module header. + * + * @addtogroup L3GD20 + * @ingroup EX_ST + * @{ + */ +#ifndef _L3GD20_H_ +#define _L3GD20_H_ + +#include "hal_gyroscope.h" + +/*===========================================================================*/ +/* Driver constants.                                                         */ +/*===========================================================================*/ + +/** + * @name    Version identification + * @{ + */ +/** + * @brief   L3GD20 driver version string. + */ +#define EX_L3GD20_VERSION                   "1.1.1" + +/** + * @brief   L3GD20 driver version major number. + */ +#define EX_L3GD20_MAJOR                     1 + +/** + * @brief   L3GD20 driver version minor number. + */ +#define EX_L3GD20_MINOR                     1 + +/** + * @brief   L3GD20 driver version patch number. + */ +#define EX_L3GD20_PATCH                     1 +/** @} */ + +/** + * @brief   L3GD20 gyroscope system characteristics. + * @note    Sensitivity is expressed as DPS/LSB whereas DPS stand for Degree + *          per second [°/s]. + * @note    Bias is expressed as DPS. + * + * @{   */  #define L3GD20_GYRO_NUMBER_OF_AXES          3U @@ -76,8 +76,8 @@  #define L3GD20_GYRO_SENS_250DPS             0.00875f  #define L3GD20_GYRO_SENS_500DPS             0.01750f -#define L3GD20_GYRO_SENS_2000DPS            0.07000f
 -
 +#define L3GD20_GYRO_SENS_2000DPS            0.07000f +  #define L3GD20_GYRO_BIAS                    0.0f  /** @} */ @@ -194,36 +194,36 @@  #define L3GD20_CTRL_REG5_FIFO_EN            (1 << 6)  #define L3GD20_CTRL_REG5_BOOT               (1 << 7)  /** @} */ -
 -/**
 - * @name    L3GD20_INT1_CFG register bits definitions
 - * @{
 - */
 -#define L3GD20_INT1_CFG_MASK                0xFF
 -#define L3GD20_INT1_CFG_XLIE                (1 << 0)
 -#define L3GD20_INT1_CFG_XHIE                (1 << 1)
 -#define L3GD20_INT1_CFG_YLIE                (1 << 2)
 -#define L3GD20_INT1_CFG_YHIE                (1 << 3)
 -#define L3GD20_INT1_CFG_ZLIE                (1 << 4)
 -#define L3GD20_INT1_CFG_ZHIE                (1 << 5)
 -#define L3GD20_INT1_CFG_LIR                 (1 << 6)
 -#define L3GD20_INT1_CFG_AND_OR              (1 << 7)
 -/** @} */
 -
 -/**
 - * @name    L3GD20_INT1_SRC register bits definitions
 - * @{
 - */
 -#define L3GD20_INT1_SRC_MASK                0x7F
 -#define L3GD20_INT1_SRC_XL                  (1 << 0)
 -#define L3GD20_INT1_SRC_XH                  (1 << 1)
 -#define L3GD20_INT1_SRC_YL                  (1 << 2)
 -#define L3GD20_INT1_SRC_YH                  (1 << 3)
 -#define L3GD20_INT1_SRC_ZL                  (1 << 4)
 -#define L3GD20_INT1_SRC_ZH                  (1 << 5)
 -#define L3GD20_INT1_SRC_IA                  (1 << 6)
 -/** @} */
 -
 + +/** + * @name    L3GD20_INT1_CFG register bits definitions + * @{ + */ +#define L3GD20_INT1_CFG_MASK                0xFF +#define L3GD20_INT1_CFG_XLIE                (1 << 0) +#define L3GD20_INT1_CFG_XHIE                (1 << 1) +#define L3GD20_INT1_CFG_YLIE                (1 << 2) +#define L3GD20_INT1_CFG_YHIE                (1 << 3) +#define L3GD20_INT1_CFG_ZLIE                (1 << 4) +#define L3GD20_INT1_CFG_ZHIE                (1 << 5) +#define L3GD20_INT1_CFG_LIR                 (1 << 6) +#define L3GD20_INT1_CFG_AND_OR              (1 << 7) +/** @} */ + +/** + * @name    L3GD20_INT1_SRC register bits definitions + * @{ + */ +#define L3GD20_INT1_SRC_MASK                0x7F +#define L3GD20_INT1_SRC_XL                  (1 << 0) +#define L3GD20_INT1_SRC_XH                  (1 << 1) +#define L3GD20_INT1_SRC_YL                  (1 << 2) +#define L3GD20_INT1_SRC_YH                  (1 << 3) +#define L3GD20_INT1_SRC_ZL                  (1 << 4) +#define L3GD20_INT1_SRC_ZH                  (1 << 5) +#define L3GD20_INT1_SRC_IA                  (1 << 6) +/** @} */ +  /*===========================================================================*/  /* Driver pre-compile time settings.                                         */  /*===========================================================================*/ @@ -232,52 +232,52 @@   * @name    Configuration options   * @{   */ -/**
 - * @brief   L3GD20 SPI interface switch.
 - * @details If set to @p TRUE the support for SPI is included.
 - * @note    The default is @p TRUE.
 - */
 -#if !defined(L3GD20_USE_SPI) || defined(__DOXYGEN__)
 -#define L3GD20_USE_SPI                      TRUE
 -#endif
 -
 -/**
 - * @brief   L3GD20 shared SPI switch.
 - * @details If set to @p TRUE the device acquires SPI bus ownership
 - *          on each transaction.
 - * @note    The default is @p FALSE. Requires SPI_USE_MUTUAL_EXCLUSION.
 - */
 -#if !defined(L3GD20_SHARED_SPI) || defined(__DOXYGEN__)
 -#define L3GD20_SHARED_SPI                   FALSE
 -#endif
 -
 -/**
 - * @brief   L3GD20 I2C interface switch.
 - * @details If set to @p TRUE the support for I2C is included.
 - * @note    The default is @p FALSE.
 - */
 -#if !defined(L3GD20_USE_I2C) || defined(__DOXYGEN__)
 -#define L3GD20_USE_I2C                      FALSE
 -#endif
 -
 -/**
 - * @brief   L3GD20 shared I2C switch.
 - * @details If set to @p TRUE the device acquires I2C bus ownership
 - *          on each transaction.
 - * @note    The default is @p FALSE. Requires I2C_USE_MUTUAL_EXCLUSION.
 - */
 -#if !defined(L3GD20_SHARED_I2C) || defined(__DOXYGEN__)
 -#define L3GD20_SHARED_I2C                   FALSE
 -#endif
 -
 -/**
 - * @brief   L3GD20 accelerometer subsystem advanced configurations
 - *          switch.
 - * @details If set to @p TRUE more configurations are available.
 - * @note    The default is @p FALSE.
 - */
 -#if !defined(L3GD20_GYRO_USE_ADVANCED) || defined(__DOXYGEN__)
 -#define L3GD20_GYRO_USE_ADVANCED            FALSE
 +/** + * @brief   L3GD20 SPI interface switch. + * @details If set to @p TRUE the support for SPI is included. + * @note    The default is @p TRUE. + */ +#if !defined(L3GD20_USE_SPI) || defined(__DOXYGEN__) +#define L3GD20_USE_SPI                      TRUE +#endif + +/** + * @brief   L3GD20 shared SPI switch. + * @details If set to @p TRUE the device acquires SPI bus ownership + *          on each transaction. + * @note    The default is @p FALSE. Requires SPI_USE_MUTUAL_EXCLUSION. + */ +#if !defined(L3GD20_SHARED_SPI) || defined(__DOXYGEN__) +#define L3GD20_SHARED_SPI                   FALSE +#endif + +/** + * @brief   L3GD20 I2C interface switch. + * @details If set to @p TRUE the support for I2C is included. + * @note    The default is @p FALSE. + */ +#if !defined(L3GD20_USE_I2C) || defined(__DOXYGEN__) +#define L3GD20_USE_I2C                      FALSE +#endif + +/** + * @brief   L3GD20 shared I2C switch. + * @details If set to @p TRUE the device acquires I2C bus ownership + *          on each transaction. + * @note    The default is @p FALSE. Requires I2C_USE_MUTUAL_EXCLUSION. + */ +#if !defined(L3GD20_SHARED_I2C) || defined(__DOXYGEN__) +#define L3GD20_SHARED_I2C                   FALSE +#endif + +/** + * @brief   L3GD20 accelerometer subsystem advanced configurations + *          switch. + * @details If set to @p TRUE more configurations are available. + * @note    The default is @p FALSE. + */ +#if !defined(L3GD20_GYRO_USE_ADVANCED) || defined(__DOXYGEN__) +#define L3GD20_GYRO_USE_ADVANCED            FALSE  #endif  /** @@ -302,32 +302,32 @@  /* Derived constants and error checks.                                       */  /*===========================================================================*/ -#if !(L3GD20_USE_SPI ^ L3GD20_USE_I2C)
 -#error "L3GD20_USE_SPI and L3GD20_USE_I2C cannot be both true or both false"
 -#endif
 -
 -#if L3GD20_USE_SPI && !HAL_USE_SPI
 -#error "L3GD20_USE_SPI requires HAL_USE_SPI"
 -#endif
 -
 -#if L3GD20_SHARED_SPI && !SPI_USE_MUTUAL_EXCLUSION
 -#error "L3GD20_SHARED_SPI requires SPI_USE_MUTUAL_EXCLUSION"
 -#endif
 -
 -#if L3GD20_USE_I2C && !HAL_USE_I2C
 -#error "L3GD20_USE_I2C requires HAL_USE_I2C"
 -#endif
 -
 -#if L3GD20_SHARED_I2C && !I2C_USE_MUTUAL_EXCLUSION
 -#error "L3GD20_SHARED_I2C requires I2C_USE_MUTUAL_EXCLUSION"
 -#endif
 -
 -/**
 - * @todo    Add support for L3GD20 over I2C.
 - */
 -#if L3GD20_USE_I2C
 -#error "L3GD20 over I2C still not supported"
 -#endif
 +#if !(L3GD20_USE_SPI ^ L3GD20_USE_I2C) +#error "L3GD20_USE_SPI and L3GD20_USE_I2C cannot be both true or both false" +#endif + +#if L3GD20_USE_SPI && !HAL_USE_SPI +#error "L3GD20_USE_SPI requires HAL_USE_SPI" +#endif + +#if L3GD20_SHARED_SPI && !SPI_USE_MUTUAL_EXCLUSION +#error "L3GD20_SHARED_SPI requires SPI_USE_MUTUAL_EXCLUSION" +#endif + +#if L3GD20_USE_I2C && !HAL_USE_I2C +#error "L3GD20_USE_I2C requires HAL_USE_I2C" +#endif + +#if L3GD20_SHARED_I2C && !I2C_USE_MUTUAL_EXCLUSION +#error "L3GD20_SHARED_I2C requires I2C_USE_MUTUAL_EXCLUSION" +#endif + +/** + * @todo    Add support for L3GD20 over I2C. + */ +#if L3GD20_USE_I2C +#error "L3GD20 over I2C still not supported" +#endif  /*===========================================================================*/  /* Driver data structures and types.                                         */ @@ -336,11 +336,11 @@  /**   * @name    L3GD20 data structures and types.   * @{ - */
 -/**
 - * @brief   Structure representing a L3GD20 driver.
 - */
 -typedef struct L3GD20Driver L3GD20Driver;
 + */ +/** + * @brief   Structure representing a L3GD20 driver. + */ +typedef struct L3GD20Driver L3GD20Driver;  /**   * @brief   L3GD20 full scale. @@ -369,7 +369,7 @@ typedef enum {    L3GD20_BW1 = 0x40,                /**< LPF1 bandwidth. Depends on ODR.    */    L3GD20_BW2 = 0x80,                /**< LPF1 bandwidth. Depends on ODR.    */    L3GD20_BW3 = 0xC0                 /**< LPF1 bandwidth. Depends on ODR.    */ -} l3gd20_bw_t;
 +} l3gd20_bw_t;  /**   * @brief   L3GD20 block data update. @@ -430,7 +430,7 @@ typedef enum {    L3GD20_STOP = 1,                  /**< Stopped.                           */    L3GD20_READY = 2                  /**< Ready.                             */  } l3gd20_state_t; -
 +  /**   * @brief   L3GD20 configuration structure.   */ @@ -463,7 +463,7 @@ typedef struct {    /**     * @brief   L3GD20 gyroscope system initial bias.     */ -  float                     *gyrobias;
 +  float                     *gyrobias;    /**      * @brief   L3GD20 gyroscope system initial full scale value.     */ @@ -500,20 +500,20 @@ typedef struct {    l3gd20_lp2m_t             gyrolp2mode;  #endif  } L3GD20Config; -
 -/**
 - * @brief   @p L3GD20 specific methods.
 - */
 -#define _l3gd20_methods_alone                                               \
 -  /* Change full scale value of L3GD20.*/                                   \
 -  msg_t (*gyro_set_full_scale)(L3GD20Driver *devp, l3gd20_fs_t fs);
 + +/** + * @brief   @p L3GD20 specific methods. + */ +#define _l3gd20_methods_alone                                               \ +  /* Change full scale value of L3GD20.*/                                   \ +  msg_t (*gyro_set_full_scale)(L3GD20Driver *devp, l3gd20_fs_t fs);  /**   * @brief   @p L3GD20 specific methods with inherited ones.   */  #define _l3gd20_methods                                                     \    _base_object_methods                                                      \ -  _l3gd20_methods_alone
 +  _l3gd20_methods_alone  /**   * @extends BaseObjectVMT @@ -532,8 +532,8 @@ struct L3GD20VMT {    /* Driver state.*/                                                        \    l3gd20_state_t            state;                                          \    /* Current configuration data.*/                                          \ -  const L3GD20Config        *config;                                        \
 -  /* Gyroscope subsystem axes number.*/                                     \
 +  const L3GD20Config        *config;                                        \ +  /* Gyroscope subsystem axes number.*/                                     \    size_t                    gyroaxes;                                       \    /* Gyroscope subsystem current sensitivity.*/                             \    float                     gyrosensitivity[L3GD20_GYRO_NUMBER_OF_AXES];    \ @@ -547,8 +547,8 @@ struct L3GD20VMT {   */  struct L3GD20Driver {    /** @brief Virtual Methods Table. */ -  const struct L3GD20VMT    *vmt;
 -  /** @brief Base gyroscope interface.*/
 +  const struct L3GD20VMT    *vmt; +  /** @brief Base gyroscope interface.*/    BaseGyroscope             gyro_if;    _l3gd20_data  }; @@ -557,154 +557,154 @@ struct L3GD20Driver {  /*===========================================================================*/  /* Driver macros.                                                            */  /*===========================================================================*/ -
 -/**
 - * @brief   Return the number of axes of the BaseGyroscope.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - *
 - * @return              the number of axes.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeGetAxesNumber(devp)                                  \
 -        gyroscopeGetAxesNumber(&((devp)->gyro_if))
 + +/** + * @brief   Return the number of axes of the BaseGyroscope. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * + * @return              the number of axes. + * + * @api + */ +#define l3gd20GyroscopeGetAxesNumber(devp)                                  \ +        gyroscopeGetAxesNumber(&((devp)->gyro_if)) -/**
 - * @brief   Retrieves raw data from the BaseGyroscope.
 - * @note    This data is retrieved from MEMS register without any algebraical
 - *          manipulation.
 - * @note    The axes array must be at least the same size of the
 - *          BaseGyroscope axes number.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - * @param[out] axes     a buffer which would be filled with raw data.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeReadRaw(devp, axes)                                  \
 +/** + * @brief   Retrieves raw data from the BaseGyroscope. + * @note    This data is retrieved from MEMS register without any algebraical + *          manipulation. + * @note    The axes array must be at least the same size of the + *          BaseGyroscope axes number. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * @param[out] axes     a buffer which would be filled with raw data. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * + * @api + */ +#define l3gd20GyroscopeReadRaw(devp, axes)                                  \          gyroscopeReadRaw(&((devp)->gyro_if), axes) -
 -/**
 - * @brief   Retrieves cooked data from the BaseGyroscope.
 - * @note    This data is manipulated according to the formula
 - *          cooked = (raw * sensitivity) - bias.
 - * @note    Final data is expressed as DPS.
 - * @note    The axes array must be at least the same size of the
 - *          BaseGyroscope axes number.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - * @param[out] axes     a buffer which would be filled with cooked data.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeReadCooked(devp, axes)                               \
 -        gyroscopeReadCooked(&((devp)->gyro_if), axes)
 -
 -/**
 - * @brief   Samples bias values for the BaseGyroscope.
 - * @note    The L3GD20 shall not be moved during the whole procedure.
 - * @note    After this function internal bias is automatically updated.
 - * @note    The behavior of this function depends on @P L3GD20_BIAS_ACQ_TIMES
 - *          and @p L3GD20_BIAS_SETTLING_US.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeSampleBias(devp)                                      \
 -        gyroscopeSampleBias(&((devp)->gyro_if))
 -
 -/**
 - * @brief   Set bias values for the BaseGyroscope.
 - * @note    Bias must be expressed as DPS.
 - * @note    The bias buffer must be at least the same size of the BaseGyroscope
 - *          axes number.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - * @param[in] bp        a buffer which contains biases.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeSetBias(devp, bp)                                    \
 -        gyroscopeSetBias(&((devp)->gyro_if), bp)
 -
 -/**
 - * @brief   Reset bias values for the BaseGyroscope.
 - * @note    Default biases value are obtained from device datasheet when
 - *          available otherwise they are considered zero.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeResetBias(devp)                                      \
 -        gyroscopeResetBias(&((devp)->gyro_if))
 -
 -/**
 - * @brief   Set sensitivity values for the BaseGyroscope.
 - * @note    Sensitivity must be expressed as DPS/LSB.
 - * @note    The sensitivity buffer must be at least the same size of the
 - *          BaseGyroscope axes number.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - * @param[in] sp        a buffer which contains sensitivities.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeSetSensitivity(devp, sp)                             \
 -        gyroscopeSetSensitivity(&((devp)->gyro_if), sp)
 -
 -/**
 - * @brief   Reset sensitivity values for the BaseGyroscope.
 - * @note    Default sensitivities value are obtained from device datasheet.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - * @retval MSG_RESET    otherwise.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeResetSensitivity(devp)                               \
 -        gyroscopeResetSensitivity(&((devp)->gyro_if))
 -
 -/**
 - * @brief   Changes the L3GD20Driver gyroscope fullscale value.
 - * @note    This function also rescale sensitivities and biases based on
 - *          previous and next fullscale value.
 - * @note    A recalibration is highly suggested after calling this function.
 - *
 - * @param[in] devp      pointer to @p L3GD20Driver.
 - * @param[in] fs        new fullscale value.
 - *
 - * @return              The operation status.
 - * @retval MSG_OK       if the function succeeded.
 - * @retval MSG_RESET    otherwise.
 - *
 - * @api
 - */
 -#define l3gd20GyroscopeSetFullScale(devp, fs)                               \
 -        (devp)->vmt->acc_set_full_scale(devp, fs)
 + +/** + * @brief   Retrieves cooked data from the BaseGyroscope. + * @note    This data is manipulated according to the formula + *          cooked = (raw * sensitivity) - bias. + * @note    Final data is expressed as DPS. + * @note    The axes array must be at least the same size of the + *          BaseGyroscope axes number. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * @param[out] axes     a buffer which would be filled with cooked data. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * + * @api + */ +#define l3gd20GyroscopeReadCooked(devp, axes)                               \ +        gyroscopeReadCooked(&((devp)->gyro_if), axes) + +/** + * @brief   Samples bias values for the BaseGyroscope. + * @note    The L3GD20 shall not be moved during the whole procedure. + * @note    After this function internal bias is automatically updated. + * @note    The behavior of this function depends on @p L3GD20_BIAS_ACQ_TIMES + *          and @p L3GD20_BIAS_SETTLING_US. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * + * @api + */ +#define l3gd20GyroscopeSampleBias(devp)                                      \ +        gyroscopeSampleBias(&((devp)->gyro_if)) + +/** + * @brief   Set bias values for the BaseGyroscope. + * @note    Bias must be expressed as DPS. + * @note    The bias buffer must be at least the same size of the BaseGyroscope + *          axes number. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * @param[in] bp        a buffer which contains biases. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * + * @api + */ +#define l3gd20GyroscopeSetBias(devp, bp)                                    \ +        gyroscopeSetBias(&((devp)->gyro_if), bp) + +/** + * @brief   Reset bias values for the BaseGyroscope. + * @note    Default biases value are obtained from device datasheet when + *          available otherwise they are considered zero. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * + * @api + */ +#define l3gd20GyroscopeResetBias(devp)                                      \ +        gyroscopeResetBias(&((devp)->gyro_if)) + +/** + * @brief   Set sensitivity values for the BaseGyroscope. + * @note    Sensitivity must be expressed as DPS/LSB. + * @note    The sensitivity buffer must be at least the same size of the + *          BaseGyroscope axes number. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * @param[in] sp        a buffer which contains sensitivities. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * + * @api + */ +#define l3gd20GyroscopeSetSensitivity(devp, sp)                             \ +        gyroscopeSetSensitivity(&((devp)->gyro_if), sp) + +/** + * @brief   Reset sensitivity values for the BaseGyroscope. + * @note    Default sensitivities value are obtained from device datasheet. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * @retval MSG_RESET    otherwise. + * + * @api + */ +#define l3gd20GyroscopeResetSensitivity(devp)                               \ +        gyroscopeResetSensitivity(&((devp)->gyro_if)) + +/** + * @brief   Changes the L3GD20Driver gyroscope fullscale value. + * @note    This function also rescale sensitivities and biases based on + *          previous and next fullscale value. + * @note    A recalibration is highly suggested after calling this function. + * + * @param[in] devp      pointer to @p L3GD20Driver. + * @param[in] fs        new fullscale value. + * + * @return              The operation status. + * @retval MSG_OK       if the function succeeded. + * @retval MSG_RESET    otherwise. + * + * @api + */ +#define l3gd20GyroscopeSetFullScale(devp, fs)                               \ +        (devp)->vmt->acc_set_full_scale(devp, fs)  /*===========================================================================*/  /* External declarations.                                                    */ diff --git a/os/ex/ST/lis302dl.c b/os/ex/ST/lis302dl.c index a57cc69bd..7f2ebe7ef 100644 --- a/os/ex/ST/lis302dl.c +++ b/os/ex/ST/lis302dl.c @@ -322,15 +322,14 @@ static msg_t acc_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LIS302DLDriver interface.
 + * @param[in] devp      pointer to @p LIS302DLDriver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
   * @retval MSG_RESET    otherwise.
   */
 -static msg_t acc_set_full_scale(LIS302DLDriver *devp,
 -                                lis302dl_acc_fs_t fs) {
 +static msg_t acc_set_full_scale(LIS302DLDriver *devp, lis302dl_acc_fs_t fs) {
    float newfs, scale;
    uint8_t i, cr;
    msg_t msg;
 @@ -448,7 +447,7 @@ void lis302dlStart(LIS302DLDriver *devp, const LIS302DLConfig *config) {    osalDbgCheck((devp != NULL) && (config != NULL));
    osalDbgAssert((devp->state == LIS302DL_STOP) || (devp->state == LIS302DL_READY),
 -              "lis302dlStart(), invalid state");			
 +              "lis302dlStart(), invalid state");
    devp->config = config;
 diff --git a/os/ex/ST/lis3dsh.c b/os/ex/ST/lis3dsh.c index b3634a1f7..3400f646e 100644 --- a/os/ex/ST/lis3dsh.c +++ b/os/ex/ST/lis3dsh.c @@ -336,15 +336,14 @@ static msg_t acc_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LIS3DSHDriver interface.
 + * @param[in] devp      pointer to @p LIS3DSHDriver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
   * @retval MSG_RESET    otherwise.
   */
 -static msg_t acc_set_full_scale(LIS3DSHDriver *devp,
 -                                lis3dsh_acc_fs_t fs) {
 +static msg_t acc_set_full_scale(LIS3DSHDriver *devp, lis3dsh_acc_fs_t fs) {
    float newfs, scale;
    uint8_t i, cr;
    msg_t msg;
 diff --git a/os/ex/ST/lis3dsh.h b/os/ex/ST/lis3dsh.h index eb67580e8..26dafcd38 100644 --- a/os/ex/ST/lis3dsh.h +++ b/os/ex/ST/lis3dsh.h @@ -43,7 +43,7 @@  /**
   * @brief   LIS3DSH driver version string.
   */
 -#define EX_LIS3DSH_VERSION                  "1.1.0"
 +#define EX_LIS3DSH_VERSION                  "1.1.1"
  /**
   * @brief   LIS3DSH driver version major number.
 @@ -58,7 +58,7 @@  /**
   * @brief   LIS3DSH driver version patch number.
   */
 -#define EX_LIS3DSH_PATCH                    0
 +#define EX_LIS3DSH_PATCH                    1
  /** @} */
  /**
 diff --git a/os/ex/ST/lis3mdl.c b/os/ex/ST/lis3mdl.c index cef564dab..559564744 100644 --- a/os/ex/ST/lis3mdl.c +++ b/os/ex/ST/lis3mdl.c @@ -335,15 +335,14 @@ static msg_t comp_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LIS3MDLDriver interface.
 + * @param[in] devp      pointer to @p LIS3MDLDriver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
   * @retval MSG_RESET    otherwise.
   */
 -static msg_t comp_set_full_scale(LIS3MDLDriver *devp,
 -                                 lis3mdl_comp_fs_t fs) {
 +static msg_t comp_set_full_scale(LIS3MDLDriver *devp, lis3mdl_comp_fs_t fs) {
    float newfs, scale;
    uint8_t i, buff[2];
    msg_t msg;
 diff --git a/os/ex/ST/lis3mdl.h b/os/ex/ST/lis3mdl.h index e076f3154..96def428d 100644 --- a/os/ex/ST/lis3mdl.h +++ b/os/ex/ST/lis3mdl.h @@ -42,7 +42,7 @@  /**
   * @brief   LIS3MDL driver version string.
   */
 -#define EX_LIS3MDL_VERSION                  "1.1.0"
 +#define EX_LIS3MDL_VERSION                  "1.1.1"
  /**
   * @brief   LIS3MDL driver version major number.
 @@ -57,7 +57,7 @@  /**
   * @brief   LIS3MDL driver version patch number.
   */
 -#define EX_LIS3MDL_PATCH                    0
 +#define EX_LIS3MDL_PATCH                    1
  /** @} */
  /**
 @@ -282,6 +282,9 @@   */
  typedef struct LIS3MDLDriver LIS3MDLDriver;
 +/**
 + * @brief   LIS3MDL slave address
 + */
  typedef enum {
    LIS3MDL_SAD_GND = 0x1C,           /**< Slave Address when SA1 is to GND   */
    LIS3MDL_SAD_VCC = 0x1E            /**< Slave Address when SA1 is to VCC   */
 @@ -529,7 +532,7 @@ struct LIS3MDLDriver {   * @note    The axes array must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[out] axes     a buffer which would be filled with raw data.
   *
   * @return              The operation status.
 @@ -551,7 +554,7 @@ struct LIS3MDLDriver {   * @note    The axes array must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[out] axes     a buffer which would be filled with cooked data.
   *
   * @return              The operation status.
 @@ -571,7 +574,7 @@ struct LIS3MDLDriver {   * @note    The bias buffer must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[in] bp        a buffer which contains biases.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/lps22hb.c b/os/ex/ST/lps22hb.c index fdc1e6b2e..a341f5fcd 100644 --- a/os/ex/ST/lps22hb.c +++ b/os/ex/ST/lps22hb.c @@ -372,7 +372,7 @@ static msg_t thermo_read_raw(void *ip, int32_t axes[]) {   *          BaseThermometer axes number.
   *
   * @param[in] ip        pointer to @p BaseThermometer interface.
 - * @param[out] axes     a buffer which would be filled with cooked data.
 + * @param[out] axis     a buffer which would be filled with cooked data.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
 diff --git a/os/ex/ST/lps25h.c b/os/ex/ST/lps25h.c index f038e78f7..20c03c1d4 100644 --- a/os/ex/ST/lps25h.c +++ b/os/ex/ST/lps25h.c @@ -379,7 +379,7 @@ static msg_t thermo_read_raw(void *ip, int32_t axes[]) {   *          BaseThermometer axes number.
   *
   * @param[in] ip        pointer to @p BaseThermometer interface.
 - * @param[out] axes     a buffer which would be filled with cooked data.
 + * @param[out] axis     a buffer which would be filled with cooked data.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
 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_ */
 +
 +/** @} */
 +
 diff --git a/os/ex/ST/lsm303agr.c b/os/ex/ST/lsm303agr.c index 17b312ee0..415364d03 100644 --- a/os/ex/ST/lsm303agr.c +++ b/os/ex/ST/lsm303agr.c @@ -345,7 +345,7 @@ static msg_t acc_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LSM303AGRDriver interface.
 + * @param[in] devp      pointer to @p LSM303AGRDriver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/lsm303agr.h b/os/ex/ST/lsm303agr.h index 74ddc058b..7e532ab92 100644 --- a/os/ex/ST/lsm303agr.h +++ b/os/ex/ST/lsm303agr.h @@ -811,7 +811,7 @@ struct LSM303AGRDriver {   * @note    The axes array must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[out] axes     a buffer which would be filled with raw data.
   *
   * @return              The operation status.
 @@ -833,7 +833,7 @@ struct LSM303AGRDriver {   * @note    The axes array must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[out] axes     a buffer which would be filled with cooked data.
   *
   * @return              The operation status.
 @@ -853,7 +853,7 @@ struct LSM303AGRDriver {   * @note    The bias buffer must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[in] bp        a buffer which contains biases.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/lsm303dlhc.c b/os/ex/ST/lsm303dlhc.c index 0e05252d4..8fa988ab7 100644 --- a/os/ex/ST/lsm303dlhc.c +++ b/os/ex/ST/lsm303dlhc.c @@ -337,7 +337,7 @@ static msg_t acc_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LSM303DLHCDriver interface.
 + * @param[in] devp      pointer to @p LSM303DLHCDriver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
 @@ -721,7 +721,7 @@ static msg_t comp_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LSM303DLHCDriver interface.
 + * @param[in] devp      pointer to @p LSM303DLHCDriver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/lsm303dlhc.h b/os/ex/ST/lsm303dlhc.h index f10efeb68..626ea1383 100644 --- a/os/ex/ST/lsm303dlhc.h +++ b/os/ex/ST/lsm303dlhc.h @@ -43,7 +43,7 @@  /**
   * @brief   LSM303DLHC driver version string.
   */
 -#define EX_LSM303DLHC_VERSION               "1.1.0"
 +#define EX_LSM303DLHC_VERSION               "1.1.1"
  /**
   * @brief   LSM303DLHC driver version major number.
 @@ -58,7 +58,7 @@  /**
   * @brief   LSM303DLHC driver version patch number.
   */
 -#define EX_LSM303DLHC_PATCH                 0
 +#define EX_LSM303DLHC_PATCH                 1
  /** @} */
  /**
 @@ -829,7 +829,7 @@ struct LSM303DLHCDriver {   * @note    The axes array must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[out] axes     a buffer which would be filled with raw data.
   *
   * @return              The operation status.
 @@ -851,7 +851,7 @@ struct LSM303DLHCDriver {   * @note    The axes array must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[out] axes     a buffer which would be filled with cooked data.
   *
   * @return              The operation status.
 @@ -871,7 +871,7 @@ struct LSM303DLHCDriver {   * @note    The bias buffer must be at least the same size of the
   *          BaseCompass axes number.
   *
 - * @param[in] ip        pointer to @p BaseCompass interface.
 + * @param[in] devp      pointer to @p BaseCompass interface.
   * @param[in] bp        a buffer which contains biases.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/lsm6ds0.c b/os/ex/ST/lsm6ds0.c index a12d3c6df..144af65fc 100644 --- a/os/ex/ST/lsm6ds0.c +++ b/os/ex/ST/lsm6ds0.c @@ -329,15 +329,14 @@ static msg_t acc_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LSM6DS0Driver interface.
 + * @param[in] devp      pointer to @p LSM6DS0Driver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
   * @retval MSG_RESET    otherwise.
   */
 -static msg_t acc_set_full_scale(LSM6DS0Driver *devp,
 -                                lsm6ds0_acc_fs_t fs) {
 +static msg_t acc_set_full_scale(LSM6DS0Driver *devp, lsm6ds0_acc_fs_t fs) {
    float newfs, scale;
    uint8_t i, buff[2];
    msg_t msg;
 @@ -528,7 +527,7 @@ static msg_t gyro_read_cooked(void *ip, float axes[]) {   * @brief   Samples bias values for the BaseGyroscope.
   * @note    The LSM6DS0 shall not be moved during the whole procedure.
   * @note    After this function internal bias is automatically updated.
 - * @note    The behavior of this function depends on @P LSM6DS0_BIAS_ACQ_TIMES
 + * @note    The behavior of this function depends on @p LSM6DS0_BIAS_ACQ_TIMES
   *          and @p LSM6DS0_BIAS_SETTLING_US.
   *
   * @param[in] ip        pointer to @p BaseGyroscope interface.
 @@ -707,7 +706,7 @@ static msg_t gyro_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p BaseGyroscope interface.
 + * @param[in] devp      pointer to @p BaseGyroscope interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/lsm6ds0.h b/os/ex/ST/lsm6ds0.h index e0f434c38..0f8fdabd1 100644 --- a/os/ex/ST/lsm6ds0.h +++ b/os/ex/ST/lsm6ds0.h @@ -43,7 +43,7 @@  /**
   * @brief   LSM6DS0 driver version string.
   */
 -#define EX_LSM6DS0_VERSION                  "1.1.0"
 +#define EX_LSM6DS0_VERSION                  "1.1.1"
  /**
   * @brief   LSM6DS0 driver version major number.
 @@ -58,7 +58,7 @@  /**
   * @brief   LSM6DS0 driver version patch number.
   */
 -#define EX_LSM6DS0_PATCH                    0
 +#define EX_LSM6DS0_PATCH                    1
  /** @} */
  /**
 @@ -939,7 +939,7 @@ struct LSM6DS0Driver {   * @brief   Samples bias values for the BaseGyroscope.
   * @note    The LSM6DS0 shall not be moved during the whole procedure.
   * @note    After this function internal bias is automatically updated.
 - * @note    The behavior of this function depends on @P LSM6DS0_BIAS_ACQ_TIMES
 + * @note    The behavior of this function depends on @p LSM6DS0_BIAS_ACQ_TIMES
   *          and @p LSM6DS0_BIAS_SETTLING_US.
   *
   * @param[in] devp      pointer to @p LSM6DS0Driver.
 diff --git a/os/ex/ST/lsm6dsl.c b/os/ex/ST/lsm6dsl.c index c38a4c52d..c8d22ab8b 100644 --- a/os/ex/ST/lsm6dsl.c +++ b/os/ex/ST/lsm6dsl.c @@ -329,15 +329,14 @@ static msg_t acc_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p LSM6DSLDriver interface.
 + * @param[in] devp      pointer to @p LSM6DSLDriver interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
   * @retval MSG_OK       if the function succeeded.
   * @retval MSG_RESET    otherwise.
   */
 -static msg_t acc_set_full_scale(LSM6DSLDriver *devp,
 -                                lsm6dsl_acc_fs_t fs) {
 +static msg_t acc_set_full_scale(LSM6DSLDriver *devp, lsm6dsl_acc_fs_t fs) {
    float newfs, scale;
    uint8_t i, buff[2];
    msg_t msg;
 @@ -528,7 +527,7 @@ static msg_t gyro_read_cooked(void *ip, float axes[]) {   * @brief   Samples bias values for the BaseGyroscope.
   * @note    The LSM6DSL shall not be moved during the whole procedure.
   * @note    After this function internal bias is automatically updated.
 - * @note    The behavior of this function depends on @P LSM6DSL_BIAS_ACQ_TIMES
 + * @note    The behavior of this function depends on @p LSM6DSL_BIAS_ACQ_TIMES
   *          and @p LSM6DSL_BIAS_SETTLING_US.
   *
   * @param[in] ip        pointer to @p BaseGyroscope interface.
 @@ -712,7 +711,7 @@ static msg_t gyro_reset_sensivity(void *ip) {   *          previous and next fullscale value.
   * @note    A recalibration is highly suggested after calling this function.
   *
 - * @param[in] ip        pointer to @p BaseGyroscope interface.
 + * @param[in] devp      pointer to @p BaseGyroscope interface.
   * @param[in] fs        new fullscale value.
   *
   * @return              The operation status.
 diff --git a/os/ex/ST/lsm6dsl.h b/os/ex/ST/lsm6dsl.h index 7dbb96338..0ad2d4143 100644 --- a/os/ex/ST/lsm6dsl.h +++ b/os/ex/ST/lsm6dsl.h @@ -960,7 +960,7 @@ struct LSM6DSLDriver {   * @brief   Samples bias values for the BaseGyroscope.
   * @note    The LSM6DSL shall not be moved during the whole procedure.
   * @note    After this function internal bias is automatically updated.
 - * @note    The behavior of this function depends on @P LSM6DSL_BIAS_ACQ_TIMES
 + * @note    The behavior of this function depends on @p LSM6DSL_BIAS_ACQ_TIMES
   *          and @p LSM6DSL_BIAS_SETTLING_US.
   *
   * @param[in] devp      pointer to @p LSM6DSLDriver.
 | 
