Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
accelerometer.h
00001 /** 00002 ****************************************************************************** 00003 * @file accelerometer.h 00004 * @author MEMS Application Team 00005 * @brief This header file contains the functions prototypes for the 00006 * accelerometer driver 00007 ****************************************************************************** 00008 * @attention 00009 * 00010 * <h2><center>© COPYRIGHT(c) 2018 STMicroelectronics</center></h2> 00011 * 00012 * Redistribution and use in source and binary forms, with or without modification, 00013 * are permitted provided that the following conditions are met: 00014 * 1. Redistributions of source code must retain the above copyright notice, 00015 * this list of conditions and the following disclaimer. 00016 * 2. Redistributions in binary form must reproduce the above copyright notice, 00017 * this list of conditions and the following disclaimer in the documentation 00018 * and/or other materials provided with the distribution. 00019 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00020 * may be used to endorse or promote products derived from this software 00021 * without specific prior written permission. 00022 * 00023 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00024 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00025 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00026 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00027 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00028 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00029 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00030 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00031 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00032 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 * 00034 ****************************************************************************** 00035 */ 00036 00037 /* Define to prevent recursive inclusion -------------------------------------*/ 00038 #ifndef __ACCELEROMETER_H 00039 #define __ACCELEROMETER_H 00040 00041 #ifdef __cplusplus 00042 extern "C" { 00043 #endif 00044 00045 00046 00047 /* Includes ------------------------------------------------------------------*/ 00048 #include "sensor.h" 00049 00050 /** @addtogroup BSP BSP 00051 * @{ 00052 */ 00053 00054 /** @addtogroup COMPONENTS COMPONENTS 00055 * @{ 00056 */ 00057 00058 /** @addtogroup COMMON COMMON 00059 * @{ 00060 */ 00061 00062 /** @addtogroup ACCELEROMETER ACCELEROMETER 00063 * @{ 00064 */ 00065 00066 /** @addtogroup ACCELEROMETER_Public_Types ACCELEROMETER Public types 00067 * @{ 00068 */ 00069 00070 /** 00071 * @brief ACCELEROMETER driver structure definition 00072 */ 00073 typedef struct 00074 { 00075 DrvStatusTypeDef(*Init)(DrvContextTypeDef *); 00076 DrvStatusTypeDef(*DeInit)(DrvContextTypeDef *); 00077 DrvStatusTypeDef(*Sensor_Enable)(DrvContextTypeDef *); 00078 DrvStatusTypeDef(*Sensor_Disable)(DrvContextTypeDef *); 00079 DrvStatusTypeDef(*Get_WhoAmI)(DrvContextTypeDef *, uint8_t *); 00080 DrvStatusTypeDef(*Check_WhoAmI)(DrvContextTypeDef *); 00081 DrvStatusTypeDef(*Get_Axes)(DrvContextTypeDef *, SensorAxes_t *); 00082 DrvStatusTypeDef(*Get_AxesRaw)(DrvContextTypeDef *, SensorAxesRaw_t *); 00083 DrvStatusTypeDef(*Get_Sensitivity)(DrvContextTypeDef *, float *); 00084 DrvStatusTypeDef(*Get_ODR)(DrvContextTypeDef *, float *); 00085 DrvStatusTypeDef(*Set_ODR)(DrvContextTypeDef *, SensorOdr_t); 00086 DrvStatusTypeDef(*Set_ODR_Value)(DrvContextTypeDef *, float); 00087 DrvStatusTypeDef(*Get_FS)(DrvContextTypeDef *, float *); 00088 DrvStatusTypeDef(*Set_FS)(DrvContextTypeDef *, SensorFs_t); 00089 DrvStatusTypeDef(*Set_FS_Value)(DrvContextTypeDef *, float); 00090 DrvStatusTypeDef(*Get_Axes_Status)(DrvContextTypeDef *, uint8_t *); 00091 DrvStatusTypeDef(*Set_Axes_Status)(DrvContextTypeDef *, uint8_t *); 00092 DrvStatusTypeDef(*Read_Reg)(DrvContextTypeDef *, uint8_t, uint8_t *); 00093 DrvStatusTypeDef(*Write_Reg)(DrvContextTypeDef *, uint8_t, uint8_t); 00094 DrvStatusTypeDef(*Get_DRDY_Status)(DrvContextTypeDef *, uint8_t *); 00095 } ACCELERO_Drv_t; 00096 00097 /** 00098 * @brief ACCELEROMETER data structure definition 00099 */ 00100 typedef struct 00101 { 00102 void *pComponentData; /* Component specific data. */ 00103 void *pExtData; /* Other data. */ 00104 } ACCELERO_Data_t; 00105 00106 typedef enum 00107 { 00108 X_AXIS = 0, 00109 Y_AXIS, 00110 Z_AXIS, 00111 ALL_ACTIVE 00112 } ACTIVE_AXIS_t; 00113 00114 typedef enum 00115 { 00116 NORMAL_MODE, 00117 HIGH_RES_MODE, 00118 LOW_PWR_MODE 00119 } OP_MODE_t; 00120 00121 typedef enum 00122 { 00123 INT1_DRDY_DISABLED, 00124 INT1_DRDY_ENABLED 00125 } INT1_DRDY_CONFIG_t; 00126 00127 typedef enum 00128 { 00129 DRDY_PULSED, 00130 DRDY_LATCHED 00131 } DRDY_MODE_t; 00132 00133 00134 /** 00135 * @brief ACCELEROMETER hardware features status data structure definition 00136 */ 00137 typedef struct 00138 { 00139 unsigned int FreeFallStatus : 1; 00140 unsigned int TapStatus : 1; 00141 unsigned int DoubleTapStatus : 1; 00142 unsigned int WakeUpStatus : 1; 00143 unsigned int StepStatus : 1; 00144 unsigned int TiltStatus : 1; 00145 unsigned int D6DOrientationStatus : 1; 00146 } ACCELERO_Event_Status_t; 00147 00148 /** 00149 * @} 00150 */ 00151 00152 /** 00153 * @} 00154 */ 00155 00156 /** 00157 * @} 00158 */ 00159 00160 /** 00161 * @} 00162 */ 00163 00164 /** 00165 * @} 00166 */ 00167 00168 #ifdef __cplusplus 00169 } 00170 #endif 00171 00172 #endif /* __ACCELEROMETER_H */ 00173 00174 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 16:29:49 by
1.7.2