Probe and configure the sensor when present; log and continue boot if init fails so boards without BMA456 still run normally. Co-authored-by: Cursor <cursoragent@cursor.com>
567 lines
21 KiB
C
567 lines
21 KiB
C
/**
|
|
* Copyright (c) 2023 Bosch Sensortec GmbH. All rights reserved.
|
|
*
|
|
* BSD-3-Clause
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* 3. Neither the name of the copyright holder nor the names of its
|
|
* contributors may be used to endorse or promote products derived from
|
|
* this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* @file bma456_an.h
|
|
* @date 2023-07-05
|
|
* @version V2.29.0
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* \ingroup bma4xy
|
|
* \defgroup bma456_an BMA456_AN
|
|
* @brief Sensor driver for BMA456_AN sensor
|
|
*/
|
|
|
|
#ifndef BMA456_AN_H
|
|
#define BMA456_AN_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#include "bma4.h"
|
|
|
|
/**\name Chip ID of BMA456_AN sensor */
|
|
#define BMA456_AN_CHIP_ID_PRIM UINT8_C(0x16)
|
|
#define BMA456_AN_CHIP_ID_SEC UINT8_C(0x1A)
|
|
|
|
/**\name Sensor feature size */
|
|
#define BMA456_AN_FEATURE_SIZE UINT8_C(12)
|
|
#define BMA456_AN_ANY_MOT_LEN UINT8_C(4)
|
|
|
|
/**\name Feature offset address */
|
|
#define BMA456_AN_ANY_MOT_OFFSET UINT8_C(0x00)
|
|
#define BMA456_AN_NO_MOT_OFFSET UINT8_C(0x04)
|
|
#define BMA456_AN_CONFIG_ID_OFFSET UINT8_C(0x08)
|
|
#define BMA456_AN_AXES_REMAP_OFFSET UINT8_C(0x0A)
|
|
|
|
/**\name Read/Write Lengths */
|
|
#define BMA456_AN_RD_WR_MIN_LEN UINT8_C(2)
|
|
|
|
/*! @name Maximum valid read write length is size of config file array */
|
|
#define BMA456_AN_RD_WR_MAX_LEN ((uint16_t)sizeof(bma456_an_config_file))
|
|
|
|
#define BMA456_AN_NO_MOT_RD_WR_LEN (BMA456_AN_ANY_MOT_LEN + BMA456_AN_NO_MOT_OFFSET)
|
|
|
|
/**************************************************************/
|
|
/**\name Re-map Axes */
|
|
/**************************************************************/
|
|
#define BMA456_AN_X_AXIS_MASK UINT8_C(0x03)
|
|
#define BMA456_AN_X_AXIS_SIGN_MASK UINT8_C(0x04)
|
|
#define BMA456_AN_Y_AXIS_MASK UINT8_C(0x18)
|
|
#define BMA456_AN_Y_AXIS_SIGN_MASK UINT8_C(0x20)
|
|
#define BMA456_AN_Z_AXIS_MASK UINT8_C(0xC0)
|
|
#define BMA456_AN_Z_AXIS_SIGN_MASK UINT8_C(0x01)
|
|
|
|
/**************************************************************/
|
|
/**\name Any/no Motion */
|
|
/**************************************************************/
|
|
/**\name Any/No motion threshold macros */
|
|
#define BMA456_AN_ANY_NO_MOT_THRES_MSK UINT16_C(0x07FF)
|
|
|
|
/**\name Any/No motion duration macros */
|
|
#define BMA456_AN_ANY_NO_MOT_DUR_MSK UINT16_C(0x1FFF)
|
|
|
|
/**\name Any/No motion enable macros */
|
|
#define BMA456_AN_ANY_NO_MOT_AXIS_EN_POS UINT8_C(0x0D)
|
|
#define BMA456_AN_ANY_NO_MOT_AXIS_EN_MSK UINT16_C(0xE000)
|
|
|
|
/**************************************************************/
|
|
/**\name User macros */
|
|
/**************************************************************/
|
|
/**\name Any-motion/No-motion axis enable macros */
|
|
#define BMA456_AN_X_AXIS_EN UINT8_C(0x01)
|
|
#define BMA456_AN_Y_AXIS_EN UINT8_C(0x02)
|
|
#define BMA456_AN_Z_AXIS_EN UINT8_C(0x04)
|
|
#define BMA456_AN_EN_ALL_AXIS UINT8_C(0x07)
|
|
#define BMA456_AN_DIS_ALL_AXIS UINT8_C(0x00)
|
|
|
|
/**\name Interrupt status macros */
|
|
#define BMA456_AN_ANY_MOT_INT UINT8_C(0x20)
|
|
#define BMA456_AN_NO_MOT_INT UINT8_C(0x40)
|
|
#define BMA456_AN_ERROR_INT UINT8_C(0x80)
|
|
|
|
/******************************************************************************/
|
|
/*! @name Structure Declarations */
|
|
/******************************************************************************/
|
|
|
|
/*!
|
|
* @brief Any/No motion configuration
|
|
*/
|
|
struct bma456_an_any_no_mot_config
|
|
{
|
|
/*! Expressed in 50 Hz samples (20 ms) */
|
|
uint16_t duration;
|
|
|
|
/*! Threshold value for Any-motion/No-motion detection in
|
|
* 5.11g format
|
|
*/
|
|
uint16_t threshold;
|
|
|
|
/*! To enable selected axes */
|
|
uint8_t axes_en;
|
|
};
|
|
|
|
/***************************************************************************/
|
|
|
|
/*! BMA456_AN User Interface function prototypes
|
|
****************************************************************************/
|
|
|
|
/**
|
|
* \ingroup bma456_an
|
|
* \defgroup bma456_anApiInit Initialization
|
|
* @brief Initialize the sensor and device structure
|
|
*/
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiInit
|
|
* \page bma456_an_api_bma456_an_init bma456_an_init
|
|
* \code
|
|
* int8_t bma456_an_init(struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API is the entry point.
|
|
* Call this API before using all other APIs.
|
|
* This API reads the chip-id of the sensor and sets the resolution.
|
|
*
|
|
* @param[in,out] dev : Structure instance of bma4_dev
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_init(struct bma4_dev *dev);
|
|
|
|
/**
|
|
* \ingroup bma456_an
|
|
* \defgroup bma456_anApiConfig ConfigFile
|
|
* @brief Write binary configuration in the sensor
|
|
*/
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiConfig
|
|
* \page bma456_an_api_bma456_an_write_config_file bma456_an_write_config_file
|
|
* \code
|
|
* int8_t bma456_an_write_config_file(struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API is used to upload the config file to enable the features of
|
|
* the sensor.
|
|
*
|
|
* @param[in] dev : Structure instance of bma4_dev.
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_write_config_file(struct bma4_dev *dev);
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiConfig
|
|
* \page bma456_an_api_bma456_an_get_version_config bma456_an_get_version_config
|
|
* \code
|
|
*int8_t bma456_an_get_version_config(uint16_t *config_major, uint16_t *config_minor, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API is used to get the config file major and minor information.
|
|
*
|
|
* @param[in] dev : Structure instance of bma4_dev.
|
|
* @param[out] config_major : Pointer to data buffer to store the config major.
|
|
* @param[out] config_minor : Pointer to data buffer to store the config minor.
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_get_version_config(uint16_t *config_major, uint16_t *config_minor, struct bma4_dev *dev);
|
|
|
|
/**
|
|
* \ingroup bma456_an
|
|
* \defgroup bma456_anApiMapInt Map / Unmap Interrupt
|
|
* @brief Map / Unmap user provided interrupt to interrupt pin1 or pin2 of the sensor
|
|
*/
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiMapInt
|
|
* \page bma456_an_api_bma456_an_map_interrupt bma456_an_map_interrupt
|
|
* \code
|
|
* int8_t bma456_an_map_interrupt(uint8_t int_line, uint16_t int_map, uint8_t enable, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API sets/unsets the user provided interrupt to either
|
|
* interrupt pin1 or pin2 in the sensor.
|
|
*
|
|
* @param[in] int_line: Variable to select either interrupt pin1 or pin2.
|
|
*
|
|
*@verbatim
|
|
* int_line | Macros
|
|
* ------------|-------------------
|
|
* 0x00 | BMA4_INTR1_MAP
|
|
* 0x01 | BMA4_INTR2_MAP
|
|
*@endverbatim
|
|
*
|
|
* @param[in] int_map : Variable to specify the interrupts.
|
|
* @param[in] enable : Variable to specify mapping or unmapping of interrupts.
|
|
*
|
|
*@verbatim
|
|
* enable | Macros
|
|
* --------|-------------------
|
|
* 0x00 | BMA4_DISABLE
|
|
* 0x01 | BMA4_ENABLE
|
|
*@endverbatim
|
|
*
|
|
* @param[in] dev : Structure instance of bma4_dev.
|
|
*
|
|
* @note Below macros specify the interrupts.
|
|
*
|
|
* Feature Interrupts
|
|
* - BMA456_AN_ANY_MOT_INT
|
|
* - BMA456_AN_NO_MOT_INT
|
|
* - BMA456_AN_ERROR_INT
|
|
*
|
|
* Hardware Interrupts
|
|
* - BMA4_FIFO_FULL_INT
|
|
* - BMA4_FIFO_WM_INT
|
|
* - BMA4_ACCEL_DATA_RDY_INT
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_map_interrupt(uint8_t int_line, uint16_t int_map, uint8_t enable, struct bma4_dev *dev);
|
|
|
|
/**
|
|
* \ingroup bma456_an
|
|
* \defgroup bma456_anApiIntS Interrupt Status
|
|
* @brief Read interrupt status of the sensor
|
|
*/
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiIntS
|
|
* \page bma456_an_api_bma456_an_read_int_status bma456_an_read_int_status
|
|
* \code
|
|
* int8_t bma456_an_read_int_status(uint16_t *int_status, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API reads the bma456_an interrupt status from the sensor.
|
|
*
|
|
* @param[out] int_status : Variable to store the interrupt status read from
|
|
* the sensor.
|
|
* @param[in] dev : Structure instance of bma4_dev.
|
|
*
|
|
* @note Below macros are used to check the interrupt status.
|
|
*
|
|
* Feature Interrupts
|
|
* - BMA456_AN_ANY_MOT_INT
|
|
* - BMA456_AN_NO_MOT_INT
|
|
* - BMA456_AN_ERROR_INT
|
|
*
|
|
* Hardware Interrupts
|
|
* - BMA4_FIFO_FULL_INT
|
|
* - BMA4_FIFO_WM_INT
|
|
* - BMA4_ACCEL_DATA_RDY_INT
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_read_int_status(uint16_t *int_status, struct bma4_dev *dev);
|
|
|
|
/**
|
|
* \ingroup bma456_an
|
|
* \defgroup bma456_anApiRemap Remap Axes
|
|
* @brief Set / Get x, y and z axis re-mapping in the sensor
|
|
*/
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiRemap
|
|
* \page bma456_an_api_bma456_an_set_remap_axes bma456_an_set_remap_axes
|
|
* \code
|
|
* int8_t bma456_an_set_remap_axes(const struct bma4_remap *remap_data, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API performs x, y and z axis remapping in the sensor.
|
|
*
|
|
* @param[in] remap_data : Pointer to store axes remapping data.
|
|
* @param[in] dev : Structure instance of bma4_dev
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_set_remap_axes(const struct bma4_remap *remap_data, struct bma4_dev *dev);
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiRemap
|
|
* \page bma456_an_api_bma456_an_get_remap_axes bma456_an_get_remap_axes
|
|
* \code
|
|
* int8_t bma456_an_get_remap_axes(struct bma4_remap *remap_data, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API reads the x, y and z axis remap data from the sensor.
|
|
*
|
|
* @param[out] remap_data : Pointer to store axis remap data which is read
|
|
* from the bma456_an sensor.
|
|
* @param[in] dev : Structure instance of bma4_dev
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_get_remap_axes(struct bma4_remap *remap_data, struct bma4_dev *dev);
|
|
|
|
/**
|
|
* \ingroup bma456_an
|
|
* \defgroup bma456_anApiAnyMot Any motion Feature
|
|
* @brief Functions of Any motion feature of the sensor
|
|
*/
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiAnyMot
|
|
* \page bma456_an_api_bma456_an_set_any_mot_config bma456_an_set_any_mot_config
|
|
* \code
|
|
* int8_t bma456_an_set_any_mot_config(const struct bma456_an_any_no_mot_config *any_motion, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API sets the configuration of any-motion feature in the sensor
|
|
* This API enables/disables the any-motion feature according to the axis set.
|
|
*
|
|
* @param[in] any_motion : Pointer to structure variable to configure
|
|
* any-motion.
|
|
*
|
|
* @verbatim
|
|
* -------------------------------------------------------------------------
|
|
* Structure parameters | Description
|
|
* --------------------------------|----------------------------------------
|
|
* | Defines the number of
|
|
* | consecutive data points for
|
|
* | which the threshold condition
|
|
* duration | must be respected, for interrupt
|
|
* | assertion. It is expressed in
|
|
* | 50 Hz samples (20 ms).
|
|
* | Range is 0 to 163sec.
|
|
* | Default value is 5 = 100ms.
|
|
* --------------------------------|----------------------------------------
|
|
* | Slope threshold value for
|
|
* | Any-motion detection
|
|
* threshold | in 5.11g format.
|
|
* | Range is 0 to 1g.
|
|
* | Default value is 0xAA = 83mg.
|
|
* --------------------------------|----------------------------------------
|
|
* | Enables the feature on a per-axis
|
|
* axis_en | basis.
|
|
* ---------------------------------------------------------------------------
|
|
* @endverbatim
|
|
*
|
|
*@verbatim
|
|
* Value | axis_en
|
|
* ---------|-------------------------
|
|
* 0x00 | BMA456_AN_DIS_ALL_AXIS
|
|
* 0x01 | BMA456_AN_X_AXIS_EN
|
|
* 0x02 | BMA456_AN_Y_AXIS_EN
|
|
* 0x04 | BMA456_AN_Z_AXIS_EN
|
|
* 0x07 | BMA456_AN_EN_ALL_AXIS
|
|
*@endverbatim
|
|
*
|
|
* @param[in] dev : Structure instance of bma4_dev
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_set_any_mot_config(const struct bma456_an_any_no_mot_config *any_motion, struct bma4_dev *dev);
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiNomot
|
|
* \page bma456_an_api_bma456_an_get_any_motion_config bma456_an_get_any_motion_config
|
|
* \code
|
|
* int8_t bma456_an_get_any_motion_config(struct bma456_an_anymotion_config *any_motion, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API gets the configuration of any-motion feature from the
|
|
* sensor.
|
|
*
|
|
* @param[out] any_motion : Pointer to structure variable to configure
|
|
* any-motion.
|
|
*
|
|
* @verbatim
|
|
* -------------------------------------------------------------------------
|
|
* Structure parameters | Description
|
|
* --------------------------------|----------------------------------------
|
|
* | Defines the number of
|
|
* | consecutive data points for
|
|
* | which the threshold condition
|
|
* duration | must be respected, for interrupt
|
|
* | assertion. It is expressed in
|
|
* | 50 Hz samples (20 ms).
|
|
* | Range is 0 to 163sec.
|
|
* | Default value is 5 = 100ms.
|
|
* --------------------------------|----------------------------------------
|
|
* | Slope threshold value for
|
|
* | Any-motion detection
|
|
* threshold | in 5.11g format.
|
|
* | Range is 0 to 1g.
|
|
* | Default value is 0xAA = 83mg.
|
|
* --------------------------------|-----------------------------------------
|
|
* | Enables the feature on a per-axis
|
|
* axis_en | basis.
|
|
* ---------------------------------------------------------------------------
|
|
* @endverbatim
|
|
*
|
|
*@verbatim
|
|
* Value | axis_en
|
|
* ---------|-------------------------
|
|
* 0x00 | BMA456_AN_DIS_ALL_AXIS
|
|
* 0x01 | BMA456_AN_X_AXIS_EN
|
|
* 0x02 | BMA456_AN_Y_AXIS_EN
|
|
* 0x04 | BMA456_AN_Z_AXIS_EN
|
|
* 0x07 | BMA456_AN_EN_ALL_AXIS
|
|
*@endverbatim
|
|
*
|
|
* @param[in] dev : Structure instance of bma4_dev
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_get_any_mot_config(struct bma456_an_any_no_mot_config *any_motion, struct bma4_dev *dev);
|
|
|
|
/**
|
|
* \ingroup bma456_an
|
|
* \defgroup bma456_anApiNomot No-Motion Feature
|
|
* @brief Operations of no-motion feature of the sensor
|
|
*/
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiNomot
|
|
* \page bma456_an_api_bma456_an_set_no_motion_config bma456_an_set_no_motion_config
|
|
* \code
|
|
* int8_t bma456_an_set_no_motion_config(const struct bma456_an_nomotion_config *no_motion, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API sets the configuration of no-motion feature in the sensor
|
|
* This API enables/disables the no-motion feature according to the axis set.
|
|
*
|
|
* @param[in] no_motion : Pointer to structure variable to configure
|
|
* no-motion.
|
|
* @verbatim
|
|
* -------------------------------------------------------------------------
|
|
* Structure parameters | Description
|
|
* --------------------------------|----------------------------------------
|
|
* | Defines the number of
|
|
* | consecutive data points for
|
|
* | which the threshold condition
|
|
* duration | must be respected, for interrupt
|
|
* | assertion. It is expressed in
|
|
* | 50 Hz samples (20 ms).
|
|
* | Range is 0 to 163sec.
|
|
* | Default value is 5 = 100ms.
|
|
* --------------------------------|----------------------------------------
|
|
* | Slope threshold value for
|
|
* | No-motion detection
|
|
* threshold | in 5.11g format.
|
|
* | Range is 0 to 1g.
|
|
* | Default value is 0xAA = 83mg.
|
|
* --------------------------------|----------------------------------------
|
|
* | Enables the feature on a per-axis
|
|
* axis_en | basis.
|
|
* ---------------------------------------------------------------------------
|
|
* @endverbatim
|
|
*
|
|
*@verbatim
|
|
* Value | axis_en
|
|
* ---------|-------------------------
|
|
* 0x00 | BMA456_AN_DIS_ALL_AXIS
|
|
* 0x01 | BMA456_AN_X_AXIS_EN
|
|
* 0x02 | BMA456_AN_Y_AXIS_EN
|
|
* 0x04 | BMA456_AN_Z_AXIS_EN
|
|
* 0x07 | BMA456_AN_EN_ALL_AXIS
|
|
*@endverbatim
|
|
*
|
|
* @param[in] dev : Structure instance of bma4_dev
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_set_no_mot_config(const struct bma456_an_any_no_mot_config *no_motion, struct bma4_dev *dev);
|
|
|
|
/*!
|
|
* \ingroup bma456_anApiAnyMot
|
|
* \page bma456_an_api_bma456_an_get_no_motion_config bma456_an_get_no_motion_config
|
|
* \code
|
|
* int8_t bma456_an_get_no_motion_config(struct bma456_an_nomotion_config *no_motion, struct bma4_dev *dev);
|
|
* \endcode
|
|
* @details This API gets the configuration of no-motion feature from the
|
|
* sensor.
|
|
*
|
|
* @param[out] no_motion : Pointer to structure variable to configure
|
|
* no-motion.
|
|
*
|
|
* @verbatim
|
|
* -------------------------------------------------------------------------
|
|
* Structure parameters | Description
|
|
* --------------------------------|----------------------------------------
|
|
* | Defines the number of
|
|
* | consecutive data points for
|
|
* | which the threshold condition
|
|
* duration | must be respected, for interrupt
|
|
* | assertion. It is expressed in
|
|
* | 50 Hz samples (20 ms).
|
|
* | Range is 0 to 163sec.
|
|
* | Default value is 5 = 100ms.
|
|
* --------------------------------|----------------------------------------
|
|
* | Slope threshold value for
|
|
* | No-motion detection
|
|
* threshold | in 5.11g format.
|
|
* | Range is 0 to 1g.
|
|
* | Default value is 0xAA = 83mg.
|
|
* --------------------------------|-----------------------------------------
|
|
* | Enables the feature on a per-axis
|
|
* axis_en | basis.
|
|
* ---------------------------------------------------------------------------
|
|
* @endverbatim
|
|
*
|
|
*@verbatim
|
|
* Value | axis_en
|
|
* ---------|-------------------------
|
|
* 0x00 | BMA456_AN_DIS_ALL_AXIS
|
|
* 0x01 | BMA456_AN_X_AXIS_EN
|
|
* 0x02 | BMA456_AN_Y_AXIS_EN
|
|
* 0x04 | BMA456_AN_Z_AXIS_EN
|
|
* 0x07 | BMA456_AN_EN_ALL_AXIS
|
|
*@endverbatim
|
|
*
|
|
* @param[in] dev : Structure instance of bma4_dev
|
|
*
|
|
* @return Result of API execution status
|
|
* @retval 0 -> Success
|
|
* @retval < 0 -> Fail
|
|
*/
|
|
int8_t bma456_an_get_no_mot_config(struct bma456_an_any_no_mot_config *no_motion, struct bma4_dev *dev);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /*End of CPP guard */
|
|
|
|
#endif /*End of header guard macro */
|