NinjaFlight
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
accgyro_lsm303dlhc.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  LSM303DLHCAcc_InitTypeDef
 LSM303DLHC Status. More...
 
struct  LSM303DLHCAcc_FilterConfigTypeDef
 
struct  LSM303DLHCMag_InitTypeDef
 

Macros

#define LSM303DLHC_OK   ((uint32_t) 0)
 
#define LSM303DLHC_FAIL   ((uint32_t) 0)
 
#define LSM303DLHC_FLAG_TIMEOUT   ((uint32_t)0x1000)
 
#define LSM303DLHC_LONG_TIMEOUT   ((uint32_t)(10 * LSM303DLHC_FLAG_TIMEOUT))
 
#define LSM303DLHC_I2C   I2C1
 LSM303DLHC I2C Interface pins. More...
 
#define LSM303DLHC_I2C_CLK   RCC_APB1Periph_I2C1
 
#define LSM303DLHC_I2C_SCK_PIN   GPIO_Pin_6 /* PB.06 */
 
#define LSM303DLHC_I2C_SCK_GPIO_PORT   GPIOB /* GPIOB */
 
#define LSM303DLHC_I2C_SCK_GPIO_CLK   RCC_AHBPeriph_GPIOB
 
#define LSM303DLHC_I2C_SCK_SOURCE   GPIO_PinSource6
 
#define LSM303DLHC_I2C_SCK_AF   GPIO_AF_4
 
#define LSM303DLHC_I2C_SDA_PIN   GPIO_Pin_7 /* PB.7 */
 
#define LSM303DLHC_I2C_SDA_GPIO_PORT   GPIOB /* GPIOB */
 
#define LSM303DLHC_I2C_SDA_GPIO_CLK   RCC_AHBPeriph_GPIOB
 
#define LSM303DLHC_I2C_SDA_SOURCE   GPIO_PinSource7
 
#define LSM303DLHC_I2C_SDA_AF   GPIO_AF_4
 
#define LSM303DLHC_DRDY_PIN   GPIO_Pin_2 /* PE.02 */
 
#define LSM303DLHC_DRDY_GPIO_PORT   GPIOE /* GPIOE */
 
#define LSM303DLHC_DRDY_GPIO_CLK   RCC_AHBPeriph_GPIOE
 
#define LSM303DLHC_DRDY_EXTI_LINE   EXTI_Line2
 
#define LSM303DLHC_DRDY_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOE
 
#define LSM303DLHC_DRDY_EXTI_PIN_SOURCE   EXTI_PinSource2
 
#define LSM303DLHC_DRDY_EXTI_IRQn   EXTI2_TS_IRQn
 
#define LSM303DLHC_I2C_INT1_PIN   GPIO_Pin_4 /* PE.04 */
 
#define LSM303DLHC_I2C_INT1_GPIO_PORT   GPIOE /* GPIOE */
 
#define LSM303DLHC_I2C_INT1_GPIO_CLK   RCC_AHBPeriph_GPIOE
 
#define LSM303DLHC_I2C_INT1_EXTI_LINE   EXTI_Line4
 
#define LSM303DLHC_I2C_INT1_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOE
 
#define LSM303DLHC_I2C_INT1_EXTI_PIN_SOURCE   EXTI_PinSource4
 
#define LSM303DLHC_I2C_INT1_EXTI_IRQn   EXTI4_IRQn
 
#define LSM303DLHC_I2C_INT2_PIN   GPIO_Pin_5 /* PE.05 */
 
#define LSM303DLHC_I2C_INT2_GPIO_PORT   GPIOE /* GPIOE */
 
#define LSM303DLHC_I2C_INT2_GPIO_CLK   RCC_AHBPeriph_GPIOE
 
#define LSM303DLHC_I2C_INT2_EXTI_LINE   EXTI_Line5
 
#define LSM303DLHC_I2C_INT2_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOE
 
#define LSM303DLHC_I2C_INT2_EXTI_PIN_SOURCE   EXTI_PinSource5ss
 
#define LSM303DLHC_I2C_INT2_EXTI_IRQn   EXTI9_5_IRQn
 
#define LSM303DLHC_CTRL_REG1_A   0x20 /* Control register 1 acceleration */
 
#define LSM303DLHC_CTRL_REG2_A   0x21 /* Control register 2 acceleration */
 
#define LSM303DLHC_CTRL_REG3_A   0x22 /* Control register 3 acceleration */
 
#define LSM303DLHC_CTRL_REG4_A   0x23 /* Control register 4 acceleration */
 
#define LSM303DLHC_CTRL_REG5_A   0x24 /* Control register 5 acceleration */
 
#define LSM303DLHC_CTRL_REG6_A   0x25 /* Control register 6 acceleration */
 
#define LSM303DLHC_REFERENCE_A   0x26 /* Reference register acceleration */
 
#define LSM303DLHC_STATUS_REG_A   0x27 /* Status register acceleration */
 
#define LSM303DLHC_OUT_X_L_A   0x28 /* Output Register X acceleration */
 
#define LSM303DLHC_OUT_X_H_A   0x29 /* Output Register X acceleration */
 
#define LSM303DLHC_OUT_Y_L_A   0x2A /* Output Register Y acceleration */
 
#define LSM303DLHC_OUT_Y_H_A   0x2B /* Output Register Y acceleration */
 
#define LSM303DLHC_OUT_Z_L_A   0x2C /* Output Register Z acceleration */
 
#define LSM303DLHC_OUT_Z_H_A   0x2D /* Output Register Z acceleration */
 
#define LSM303DLHC_FIFO_CTRL_REG_A   0x2E /* Fifo control Register acceleration */
 
#define LSM303DLHC_FIFO_SRC_REG_A   0x2F /* Fifo src Register acceleration */
 
#define LSM303DLHC_INT1_CFG_A   0x30 /* Interrupt 1 configuration Register acceleration */
 
#define LSM303DLHC_INT1_SOURCE_A   0x31 /* Interrupt 1 source Register acceleration */
 
#define LSM303DLHC_INT1_THS_A   0x32 /* Interrupt 1 Threshold register acceleration */
 
#define LSM303DLHC_INT1_DURATION_A   0x33 /* Interrupt 1 DURATION register acceleration */
 
#define LSM303DLHC_INT2_CFG_A   0x34 /* Interrupt 2 configuration Register acceleration */
 
#define LSM303DLHC_INT2_SOURCE_A   0x35 /* Interrupt 2 source Register acceleration */
 
#define LSM303DLHC_INT2_THS_A   0x36 /* Interrupt 2 Threshold register acceleration */
 
#define LSM303DLHC_INT2_DURATION_A   0x37 /* Interrupt 2 DURATION register acceleration */
 
#define LSM303DLHC_CLICK_CFG_A   0x38 /* Click configuration Register acceleration */
 
#define LSM303DLHC_CLICK_SOURCE_A   0x39 /* Click 2 source Register acceleration */
 
#define LSM303DLHC_CLICK_THS_A   0x3A /* Click 2 Threshold register acceleration */
 
#define LSM303DLHC_TIME_LIMIT_A   0x3B /* Time Limit Register acceleration */
 
#define LSM303DLHC_TIME_LATENCY_A   0x3C /* Time Latency Register acceleration */
 
#define LSM303DLHC_TIME_WINDOW_A   0x3D /* Time window register acceleration */
 
#define LSM303DLHC_CRA_REG_M   0x00 /* Control register A magnetic field */
 
#define LSM303DLHC_CRB_REG_M   0x01 /* Control register B magnetic field */
 
#define LSM303DLHC_MR_REG_M   0x02 /* Control register MR magnetic field */
 
#define LSM303DLHC_OUT_X_H_M   0x03 /* Output Register X magnetic field */
 
#define LSM303DLHC_OUT_X_L_M   0x04 /* Output Register X magnetic field */
 
#define LSM303DLHC_OUT_Z_H_M   0x05 /* Output Register Z magnetic field */
 
#define LSM303DLHC_OUT_Z_L_M   0x06 /* Output Register Z magnetic field */
 
#define LSM303DLHC_OUT_Y_H_M   0x07 /* Output Register Y magnetic field */
 
#define LSM303DLHC_OUT_Y_L_M   0x08 /* Output Register Y magnetic field */
 
#define LSM303DLHC_SR_REG_M   0x09 /* Status Register magnetic field */
 
#define LSM303DLHC_IRA_REG_M   0x0A /* IRA Register magnetic field */
 
#define LSM303DLHC_IRB_REG_M   0x0B /* IRB Register magnetic field */
 
#define LSM303DLHC_IRC_REG_M   0x0C /* IRC Register magnetic field */
 
#define LSM303DLHC_TEMP_OUT_H_M   0x31 /* Temperature Register magnetic field */
 
#define LSM303DLHC_TEMP_OUT_L_M   0x32 /* Temperature Register magnetic field */
 
#define ACC_I2C_ADDRESS   0x32
 
#define MAG_I2C_ADDRESS   0x3C
 
#define LSM303DLHC_NORMAL_MODE   ((uint8_t)0x00)
 
#define LSM303DLHC_LOWPOWER_MODE   ((uint8_t)0x08)
 
#define LSM303DLHC_ODR_1_HZ   ((uint8_t)0x10)
 
#define LSM303DLHC_ODR_10_HZ   ((uint8_t)0x20)
 
#define LSM303DLHC_ODR_25_HZ   ((uint8_t)0x30)
 
#define LSM303DLHC_ODR_50_HZ   ((uint8_t)0x40)
 
#define LSM303DLHC_ODR_100_HZ   ((uint8_t)0x50)
 
#define LSM303DLHC_ODR_200_HZ   ((uint8_t)0x60)
 
#define LSM303DLHC_ODR_400_HZ   ((uint8_t)0x70)
 
#define LSM303DLHC_ODR_1620_HZ_LP   ((uint8_t)0x80)
 
#define LSM303DLHC_ODR_1344_HZ   ((uint8_t)0x90)
 
#define LSM303DLHC_X_ENABLE   ((uint8_t)0x01)
 
#define LSM303DLHC_Y_ENABLE   ((uint8_t)0x02)
 
#define LSM303DLHC_Z_ENABLE   ((uint8_t)0x04)
 
#define LSM303DLHC_AXES_ENABLE   ((uint8_t)0x07)
 
#define LSM303DLHC_AXES_DISABLE   ((uint8_t)0x00)
 
#define LSM303DLHC_HR_ENABLE   ((uint8_t)0x08)
 
#define LSM303DLHC_HR_DISABLE   ((uint8_t)0x00)
 
#define LSM303DLHC_FULLSCALE_2G   ((uint8_t)0x00)
 
#define LSM303DLHC_FULLSCALE_4G   ((uint8_t)0x10)
 
#define LSM303DLHC_FULLSCALE_8G   ((uint8_t)0x20)
 
#define LSM303DLHC_FULLSCALE_16G   ((uint8_t)0x30)
 
#define LSM303DLHC_BlockUpdate_Continous   ((uint8_t)0x00)
 
#define LSM303DLHC_BlockUpdate_Single   ((uint8_t)0x80)
 
#define LSM303DLHC_BLE_LSB   ((uint8_t)0x00)
 
#define LSM303DLHC_BLE_MSB   ((uint8_t)0x40)
 
#define LSM303DLHC_BOOT_NORMALMODE   ((uint8_t)0x00)
 
#define LSM303DLHC_BOOT_REBOOTMEMORY   ((uint8_t)0x80)
 
#define LSM303DLHC_HPM_NORMAL_MODE_RES   ((uint8_t)0x00)
 
#define LSM303DLHC_HPM_REF_SIGNAL   ((uint8_t)0x40)
 
#define LSM303DLHC_HPM_NORMAL_MODE   ((uint8_t)0x80)
 
#define LSM303DLHC_HPM_AUTORESET_INT   ((uint8_t)0xC0)
 
#define LSM303DLHC_HPFCF_8   ((uint8_t)0x00)
 
#define LSM303DLHC_HPFCF_16   ((uint8_t)0x10)
 
#define LSM303DLHC_HPFCF_32   ((uint8_t)0x20)
 
#define LSM303DLHC_HPFCF_64   ((uint8_t)0x30)
 
#define LSM303DLHC_HIGHPASSFILTER_DISABLE   ((uint8_t)0x00)
 
#define LSM303DLHC_HIGHPASSFILTER_ENABLE   ((uint8_t)0x08)
 
#define LSM303DLHC_HPF_CLICK_DISABLE   ((uint8_t)0x00)
 
#define LSM303DLHC_HPF_CLICK_ENABLE   ((uint8_t)0x04)
 
#define LSM303DLHC_HPF_AOI1_DISABLE   ((uint8_t)0x00)
 
#define LSM303DLHC_HPF_AOI1_ENABLE   ((uint8_t)0x01)
 
#define LSM303DLHC_HPF_AOI2_DISABLE   ((uint8_t)0x00)
 
#define LSM303DLHC_HPF_AOI2_ENABLE   ((uint8_t)0x02)
 
#define LSM303DLHC_IT1_CLICK   ((uint8_t)0x80)
 
#define LSM303DLHC_IT1_AOI1   ((uint8_t)0x40)
 
#define LSM303DLHC_IT1_AOI2   ((uint8_t)0x20)
 
#define LSM303DLHC_IT1_DRY1   ((uint8_t)0x10)
 
#define LSM303DLHC_IT1_DRY2   ((uint8_t)0x08)
 
#define LSM303DLHC_IT1_WTM   ((uint8_t)0x04)
 
#define LSM303DLHC_IT1_OVERRUN   ((uint8_t)0x02)
 
#define LSM303DLHC_IT2_CLICK   ((uint8_t)0x80)
 
#define LSM303DLHC_IT2_INT1   ((uint8_t)0x40)
 
#define LSM303DLHC_IT2_INT2   ((uint8_t)0x20)
 
#define LSM303DLHC_IT2_BOOT   ((uint8_t)0x10)
 
#define LSM303DLHC_IT2_ACT   ((uint8_t)0x08)
 
#define LSM303DLHC_IT2_HLACTIVE   ((uint8_t)0x02)
 
#define LSM303DLHC_OR_COMBINATION   ((uint8_t)0x00)
 
#define LSM303DLHC_AND_COMBINATION   ((uint8_t)0x80)
 
#define LSM303DLHC_MOV_RECOGNITION   ((uint8_t)0x40)
 
#define LSM303DLHC_POS_RECOGNITION   ((uint8_t)0xC0)
 
#define LSM303DLHC_Z_HIGH   ((uint8_t)0x20)
 
#define LSM303DLHC_Z_LOW   ((uint8_t)0x10)
 
#define LSM303DLHC_Y_HIGH   ((uint8_t)0x08)
 
#define LSM303DLHC_Y_LOW   ((uint8_t)0x04)
 
#define LSM303DLHC_X_HIGH   ((uint8_t)0x02)
 
#define LSM303DLHC_X_LOW   ((uint8_t)0x01)
 
#define LSM303DLHC_Z_DOUBLE_CLICK   ((uint8_t)0x20)
 
#define LSM303DLHC_Z_SINGLE_CLICK   ((uint8_t)0x10)
 
#define LSM303DLHC_Y_DOUBLE_CLICK   ((uint8_t)0x08)
 
#define LSM303DLHC_Y_SINGLE_CLICK   ((uint8_t)0x04)
 
#define LSM303DLHC_X_DOUBLE_CLICK   ((uint8_t)0x02)
 
#define LSM303DLHC_X_SINGLE_CLICK   ((uint8_t)0x01)
 
#define LSM303DLHC_INT1INTERRUPT_DISABLE   ((uint8_t)0x00)
 
#define LSM303DLHC_INT1INTERRUPT_ENABLE   ((uint8_t)0x80)
 
#define LSM303DLHC_INT1INTERRUPT_LOW_EDGE   ((uint8_t)0x20)
 
#define LSM303DLHC_INT1INTERRUPT_HIGH_EDGE   ((uint8_t)0x00)
 
#define LSM303DLHC_ODR_0_75_HZ   ((uint8_t) 0x00)
 
#define LSM303DLHC_ODR_1_5_HZ   ((uint8_t) 0x04)
 
#define LSM303DLHC_ODR_3_0_HZ   ((uint8_t) 0x08)
 
#define LSM303DLHC_ODR_7_5_HZ   ((uint8_t) 0x0C)
 
#define LSM303DLHC_ODR_15_HZ   ((uint8_t) 0x10)
 
#define LSM303DLHC_ODR_30_HZ   ((uint8_t) 0x14)
 
#define LSM303DLHC_ODR_75_HZ   ((uint8_t) 0x18)
 
#define LSM303DLHC_ODR_220_HZ   ((uint8_t) 0x1C)
 
#define LSM303DLHC_FS_1_3_GA   ((uint8_t) 0x20)
 
#define LSM303DLHC_FS_1_9_GA   ((uint8_t) 0x40)
 
#define LSM303DLHC_FS_2_5_GA   ((uint8_t) 0x60)
 
#define LSM303DLHC_FS_4_0_GA   ((uint8_t) 0x80)
 
#define LSM303DLHC_FS_4_7_GA   ((uint8_t) 0xA0)
 
#define LSM303DLHC_FS_5_6_GA   ((uint8_t) 0xC0)
 
#define LSM303DLHC_FS_8_1_GA   ((uint8_t) 0xE0)
 
#define LSM303DLHC_M_SENSITIVITY_XY_1_3Ga   1100
 
#define LSM303DLHC_M_SENSITIVITY_XY_1_9Ga   855
 
#define LSM303DLHC_M_SENSITIVITY_XY_2_5Ga   670
 
#define LSM303DLHC_M_SENSITIVITY_XY_4Ga   450
 
#define LSM303DLHC_M_SENSITIVITY_XY_4_7Ga   400
 
#define LSM303DLHC_M_SENSITIVITY_XY_5_6Ga   330
 
#define LSM303DLHC_M_SENSITIVITY_XY_8_1Ga   230
 
#define LSM303DLHC_M_SENSITIVITY_Z_1_3Ga   980
 
#define LSM303DLHC_M_SENSITIVITY_Z_1_9Ga   760
 
#define LSM303DLHC_M_SENSITIVITY_Z_2_5Ga   600
 
#define LSM303DLHC_M_SENSITIVITY_Z_4Ga   400
 
#define LSM303DLHC_M_SENSITIVITY_Z_4_7Ga   355
 
#define LSM303DLHC_M_SENSITIVITY_Z_5_6Ga   295
 
#define LSM303DLHC_M_SENSITIVITY_Z_8_1Ga   205
 
#define LSM303DLHC_CONTINUOS_CONVERSION   ((uint8_t) 0x00)
 
#define LSM303DLHC_SINGLE_CONVERSION   ((uint8_t) 0x01)
 
#define LSM303DLHC_SLEEP   ((uint8_t) 0x02)
 
#define LSM303DLHC_TEMPSENSOR_ENABLE   ((uint8_t) 0x80)
 
#define LSM303DLHC_TEMPSENSOR_DISABLE   ((uint8_t) 0x00)
 
bool lsm303dlhcAccDetect (acc_t *acc)
 

Macro Definition Documentation

#define ACC_I2C_ADDRESS   0x32
#define LSM303DLHC_AND_COMBINATION   ((uint8_t)0x80)

AND combination of enabled IRQs

#define LSM303DLHC_AXES_DISABLE   ((uint8_t)0x00)
#define LSM303DLHC_AXES_ENABLE   ((uint8_t)0x07)
#define LSM303DLHC_BLE_LSB   ((uint8_t)0x00)

Acc_Endian_Data_selectionLittle Endian: data LSB @ lower address

#define LSM303DLHC_BLE_MSB   ((uint8_t)0x40)

Big Endian: data MSB @ lower address

#define LSM303DLHC_BlockUpdate_Continous   ((uint8_t)0x00)

Acc_Block_Data_UpdateContinuos Update

#define LSM303DLHC_BlockUpdate_Single   ((uint8_t)0x80)

Single Update: output registers not updated until MSB and LSB reading

#define LSM303DLHC_BOOT_NORMALMODE   ((uint8_t)0x00)

Acc_Boot_Mode_selection

#define LSM303DLHC_BOOT_REBOOTMEMORY   ((uint8_t)0x80)
#define LSM303DLHC_CLICK_CFG_A   0x38 /* Click configuration Register acceleration */
#define LSM303DLHC_CLICK_SOURCE_A   0x39 /* Click 2 source Register acceleration */
#define LSM303DLHC_CLICK_THS_A   0x3A /* Click 2 Threshold register acceleration */
#define LSM303DLHC_CONTINUOS_CONVERSION   ((uint8_t) 0x00)

Mag_Working_ModeContinuous-Conversion Mode

#define LSM303DLHC_CRA_REG_M   0x00 /* Control register A magnetic field */
#define LSM303DLHC_CRB_REG_M   0x01 /* Control register B magnetic field */
#define LSM303DLHC_CTRL_REG1_A   0x20 /* Control register 1 acceleration */
#define LSM303DLHC_CTRL_REG2_A   0x21 /* Control register 2 acceleration */
#define LSM303DLHC_CTRL_REG3_A   0x22 /* Control register 3 acceleration */
#define LSM303DLHC_CTRL_REG4_A   0x23 /* Control register 4 acceleration */
#define LSM303DLHC_CTRL_REG5_A   0x24 /* Control register 5 acceleration */
#define LSM303DLHC_CTRL_REG6_A   0x25 /* Control register 6 acceleration */
#define LSM303DLHC_DRDY_EXTI_IRQn   EXTI2_TS_IRQn
#define LSM303DLHC_DRDY_EXTI_LINE   EXTI_Line2
#define LSM303DLHC_DRDY_EXTI_PIN_SOURCE   EXTI_PinSource2
#define LSM303DLHC_DRDY_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOE
#define LSM303DLHC_DRDY_GPIO_CLK   RCC_AHBPeriph_GPIOE
#define LSM303DLHC_DRDY_GPIO_PORT   GPIOE /* GPIOE */
#define LSM303DLHC_DRDY_PIN   GPIO_Pin_2 /* PE.02 */
#define LSM303DLHC_FAIL   ((uint32_t) 0)
#define LSM303DLHC_FIFO_CTRL_REG_A   0x2E /* Fifo control Register acceleration */
#define LSM303DLHC_FIFO_SRC_REG_A   0x2F /* Fifo src Register acceleration */
#define LSM303DLHC_FLAG_TIMEOUT   ((uint32_t)0x1000)
#define LSM303DLHC_FS_1_3_GA   ((uint8_t) 0x20)

Mag_Full_ScaleFull scale = ±1.3 Gauss

#define LSM303DLHC_FS_1_9_GA   ((uint8_t) 0x40)

Full scale = ±1.9 Gauss

#define LSM303DLHC_FS_2_5_GA   ((uint8_t) 0x60)

Full scale = ±2.5 Gauss

#define LSM303DLHC_FS_4_0_GA   ((uint8_t) 0x80)

Full scale = ±4.0 Gauss

#define LSM303DLHC_FS_4_7_GA   ((uint8_t) 0xA0)

Full scale = ±4.7 Gauss

#define LSM303DLHC_FS_5_6_GA   ((uint8_t) 0xC0)

Full scale = ±5.6 Gauss

#define LSM303DLHC_FS_8_1_GA   ((uint8_t) 0xE0)

Full scale = ±8.1 Gauss

#define LSM303DLHC_FULLSCALE_16G   ((uint8_t)0x30)

±16 g

#define LSM303DLHC_FULLSCALE_2G   ((uint8_t)0x00)

Acc_Full_Scale_Selection±2 g

#define LSM303DLHC_FULLSCALE_4G   ((uint8_t)0x10)

±4 g

#define LSM303DLHC_FULLSCALE_8G   ((uint8_t)0x20)

±8 g

#define LSM303DLHC_HIGHPASSFILTER_DISABLE   ((uint8_t)0x00)

Acc_High_Pass_Filter_status

#define LSM303DLHC_HIGHPASSFILTER_ENABLE   ((uint8_t)0x08)
#define LSM303DLHC_HPF_AOI1_DISABLE   ((uint8_t)0x00)

Acc_High_Pass_Filter_AOI1_status

#define LSM303DLHC_HPF_AOI1_ENABLE   ((uint8_t)0x01)
#define LSM303DLHC_HPF_AOI2_DISABLE   ((uint8_t)0x00)

Acc_High_Pass_Filter_AOI2_status

#define LSM303DLHC_HPF_AOI2_ENABLE   ((uint8_t)0x02)
#define LSM303DLHC_HPF_CLICK_DISABLE   ((uint8_t)0x00)

Acc_High_Pass_Filter_Click_status

#define LSM303DLHC_HPF_CLICK_ENABLE   ((uint8_t)0x04)
#define LSM303DLHC_HPFCF_16   ((uint8_t)0x10)
#define LSM303DLHC_HPFCF_32   ((uint8_t)0x20)
#define LSM303DLHC_HPFCF_64   ((uint8_t)0x30)
#define LSM303DLHC_HPFCF_8   ((uint8_t)0x00)

Acc_High_Pass_CUT OFF_Frequency

#define LSM303DLHC_HPM_AUTORESET_INT   ((uint8_t)0xC0)
#define LSM303DLHC_HPM_NORMAL_MODE   ((uint8_t)0x80)
#define LSM303DLHC_HPM_NORMAL_MODE_RES   ((uint8_t)0x00)

Acc_High_Pass_Filter_Mode

#define LSM303DLHC_HPM_REF_SIGNAL   ((uint8_t)0x40)
#define LSM303DLHC_HR_DISABLE   ((uint8_t)0x00)
#define LSM303DLHC_HR_ENABLE   ((uint8_t)0x08)

Acc_High_Resolution

#define LSM303DLHC_I2C   I2C1

LSM303DLHC I2C Interface pins.

#define LSM303DLHC_I2C_CLK   RCC_APB1Periph_I2C1
#define LSM303DLHC_I2C_INT1_EXTI_IRQn   EXTI4_IRQn
#define LSM303DLHC_I2C_INT1_EXTI_LINE   EXTI_Line4
#define LSM303DLHC_I2C_INT1_EXTI_PIN_SOURCE   EXTI_PinSource4
#define LSM303DLHC_I2C_INT1_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOE
#define LSM303DLHC_I2C_INT1_GPIO_CLK   RCC_AHBPeriph_GPIOE
#define LSM303DLHC_I2C_INT1_GPIO_PORT   GPIOE /* GPIOE */
#define LSM303DLHC_I2C_INT1_PIN   GPIO_Pin_4 /* PE.04 */
#define LSM303DLHC_I2C_INT2_EXTI_IRQn   EXTI9_5_IRQn
#define LSM303DLHC_I2C_INT2_EXTI_LINE   EXTI_Line5
#define LSM303DLHC_I2C_INT2_EXTI_PIN_SOURCE   EXTI_PinSource5ss
#define LSM303DLHC_I2C_INT2_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOE
#define LSM303DLHC_I2C_INT2_GPIO_CLK   RCC_AHBPeriph_GPIOE
#define LSM303DLHC_I2C_INT2_GPIO_PORT   GPIOE /* GPIOE */
#define LSM303DLHC_I2C_INT2_PIN   GPIO_Pin_5 /* PE.05 */
#define LSM303DLHC_I2C_SCK_AF   GPIO_AF_4
#define LSM303DLHC_I2C_SCK_GPIO_CLK   RCC_AHBPeriph_GPIOB
#define LSM303DLHC_I2C_SCK_GPIO_PORT   GPIOB /* GPIOB */
#define LSM303DLHC_I2C_SCK_PIN   GPIO_Pin_6 /* PB.06 */
#define LSM303DLHC_I2C_SCK_SOURCE   GPIO_PinSource6
#define LSM303DLHC_I2C_SDA_AF   GPIO_AF_4
#define LSM303DLHC_I2C_SDA_GPIO_CLK   RCC_AHBPeriph_GPIOB
#define LSM303DLHC_I2C_SDA_GPIO_PORT   GPIOB /* GPIOB */
#define LSM303DLHC_I2C_SDA_PIN   GPIO_Pin_7 /* PB.7 */
#define LSM303DLHC_I2C_SDA_SOURCE   GPIO_PinSource7
#define LSM303DLHC_INT1_CFG_A   0x30 /* Interrupt 1 configuration Register acceleration */
#define LSM303DLHC_INT1_DURATION_A   0x33 /* Interrupt 1 DURATION register acceleration */
#define LSM303DLHC_INT1_SOURCE_A   0x31 /* Interrupt 1 source Register acceleration */
#define LSM303DLHC_INT1_THS_A   0x32 /* Interrupt 1 Threshold register acceleration */
#define LSM303DLHC_INT1INTERRUPT_DISABLE   ((uint8_t)0x00)

Acc_INT1_Interrupt_status

#define LSM303DLHC_INT1INTERRUPT_ENABLE   ((uint8_t)0x80)
#define LSM303DLHC_INT1INTERRUPT_HIGH_EDGE   ((uint8_t)0x00)
#define LSM303DLHC_INT1INTERRUPT_LOW_EDGE   ((uint8_t)0x20)

Acc_INT1_Interrupt_ActiveEdge

#define LSM303DLHC_INT2_CFG_A   0x34 /* Interrupt 2 configuration Register acceleration */
#define LSM303DLHC_INT2_DURATION_A   0x37 /* Interrupt 2 DURATION register acceleration */
#define LSM303DLHC_INT2_SOURCE_A   0x35 /* Interrupt 2 source Register acceleration */
#define LSM303DLHC_INT2_THS_A   0x36 /* Interrupt 2 Threshold register acceleration */
#define LSM303DLHC_IRA_REG_M   0x0A /* IRA Register magnetic field */
#define LSM303DLHC_IRB_REG_M   0x0B /* IRB Register magnetic field */
#define LSM303DLHC_IRC_REG_M   0x0C /* IRC Register magnetic field */
#define LSM303DLHC_IT1_AOI1   ((uint8_t)0x40)
#define LSM303DLHC_IT1_AOI2   ((uint8_t)0x20)
#define LSM303DLHC_IT1_CLICK   ((uint8_t)0x80)

Acc_LSM303DLHC_Interrupt1_Configuration_definition

#define LSM303DLHC_IT1_DRY1   ((uint8_t)0x10)
#define LSM303DLHC_IT1_DRY2   ((uint8_t)0x08)
#define LSM303DLHC_IT1_OVERRUN   ((uint8_t)0x02)
#define LSM303DLHC_IT1_WTM   ((uint8_t)0x04)
#define LSM303DLHC_IT2_ACT   ((uint8_t)0x08)
#define LSM303DLHC_IT2_BOOT   ((uint8_t)0x10)
#define LSM303DLHC_IT2_CLICK   ((uint8_t)0x80)

Acc_LSM303DLHC_Interrupt2_Configuration_definition

#define LSM303DLHC_IT2_HLACTIVE   ((uint8_t)0x02)
#define LSM303DLHC_IT2_INT1   ((uint8_t)0x40)
#define LSM303DLHC_IT2_INT2   ((uint8_t)0x20)
#define LSM303DLHC_LONG_TIMEOUT   ((uint32_t)(10 * LSM303DLHC_FLAG_TIMEOUT))
#define LSM303DLHC_LOWPOWER_MODE   ((uint8_t)0x08)
#define LSM303DLHC_M_SENSITIVITY_XY_1_3Ga   1100

Magnetometer_Sensitivitymagnetometer X Y axes sensitivity for 1.3 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_XY_1_9Ga   855

magnetometer X Y axes sensitivity for 1.9 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_XY_2_5Ga   670

magnetometer X Y axes sensitivity for 2.5 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_XY_4_7Ga   400

magnetometer X Y axes sensitivity for 4.7 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_XY_4Ga   450

magnetometer X Y axes sensitivity for 4 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_XY_5_6Ga   330

magnetometer X Y axes sensitivity for 5.6 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_XY_8_1Ga   230

magnetometer X Y axes sensitivity for 8.1 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_Z_1_3Ga   980

magnetometer Z axis sensitivity for 1.3 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_Z_1_9Ga   760

magnetometer Z axis sensitivity for 1.9 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_Z_2_5Ga   600

magnetometer Z axis sensitivity for 2.5 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_Z_4_7Ga   355

magnetometer Z axis sensitivity for 4.7 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_Z_4Ga   400

magnetometer Z axis sensitivity for 4 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_Z_5_6Ga   295

magnetometer Z axis sensitivity for 5.6 Ga full scale [LSB/Ga]

#define LSM303DLHC_M_SENSITIVITY_Z_8_1Ga   205

magnetometer Z axis sensitivity for 8.1 Ga full scale [LSB/Ga]

#define LSM303DLHC_MOV_RECOGNITION   ((uint8_t)0x40)

6D movement recognition

#define LSM303DLHC_MR_REG_M   0x02 /* Control register MR magnetic field */
#define LSM303DLHC_NORMAL_MODE   ((uint8_t)0x00)

Acc_Power_Mode_selection

#define LSM303DLHC_ODR_0_75_HZ   ((uint8_t) 0x00)

Mag_Data_RateOutput Data Rate = 0.75 Hz

#define LSM303DLHC_ODR_100_HZ   ((uint8_t)0x50)

Output Data Rate = 100 Hz

#define LSM303DLHC_ODR_10_HZ   ((uint8_t)0x20)

Output Data Rate = 10 Hz

#define LSM303DLHC_ODR_1344_HZ   ((uint8_t)0x90)

Output Data Rate = 1344 Hz in Normal mode and 5376 Hz in Low Power Mode

#define LSM303DLHC_ODR_15_HZ   ((uint8_t) 0x10)

Output Data Rate = 15 Hz

#define LSM303DLHC_ODR_1620_HZ_LP   ((uint8_t)0x80)

Output Data Rate = 1620 Hz only in Low Power Mode

#define LSM303DLHC_ODR_1_5_HZ   ((uint8_t) 0x04)

Output Data Rate = 1.5 Hz

#define LSM303DLHC_ODR_1_HZ   ((uint8_t)0x10)

Acc_OutPut_DataRate_SelectionOutput Data Rate = 1 Hz

#define LSM303DLHC_ODR_200_HZ   ((uint8_t)0x60)

Output Data Rate = 200 Hz

#define LSM303DLHC_ODR_220_HZ   ((uint8_t) 0x1C)

Output Data Rate = 220 Hz

#define LSM303DLHC_ODR_25_HZ   ((uint8_t)0x30)

Output Data Rate = 25 Hz

#define LSM303DLHC_ODR_30_HZ   ((uint8_t) 0x14)

Output Data Rate = 30 Hz

#define LSM303DLHC_ODR_3_0_HZ   ((uint8_t) 0x08)

Output Data Rate = 3 Hz

#define LSM303DLHC_ODR_400_HZ   ((uint8_t)0x70)

Output Data Rate = 400 Hz

#define LSM303DLHC_ODR_50_HZ   ((uint8_t)0x40)

Output Data Rate = 50 Hz

#define LSM303DLHC_ODR_75_HZ   ((uint8_t) 0x18)

Output Data Rate = 75 Hz

#define LSM303DLHC_ODR_7_5_HZ   ((uint8_t) 0x0C)

Output Data Rate = 7.5 Hz

#define LSM303DLHC_OK   ((uint32_t) 0)

STM32F3_DISCOVERY_LSM303DLHC_Exported_Constants

#define LSM303DLHC_OR_COMBINATION   ((uint8_t)0x00)

Acc_INT_Combination_StatusOR combination of enabled IRQs

#define LSM303DLHC_OUT_X_H_A   0x29 /* Output Register X acceleration */
#define LSM303DLHC_OUT_X_H_M   0x03 /* Output Register X magnetic field */
#define LSM303DLHC_OUT_X_L_A   0x28 /* Output Register X acceleration */
#define LSM303DLHC_OUT_X_L_M   0x04 /* Output Register X magnetic field */
#define LSM303DLHC_OUT_Y_H_A   0x2B /* Output Register Y acceleration */
#define LSM303DLHC_OUT_Y_H_M   0x07 /* Output Register Y magnetic field */
#define LSM303DLHC_OUT_Y_L_A   0x2A /* Output Register Y acceleration */
#define LSM303DLHC_OUT_Y_L_M   0x08 /* Output Register Y magnetic field */
#define LSM303DLHC_OUT_Z_H_A   0x2D /* Output Register Z acceleration */
#define LSM303DLHC_OUT_Z_H_M   0x05 /* Output Register Z magnetic field */
#define LSM303DLHC_OUT_Z_L_A   0x2C /* Output Register Z acceleration */
#define LSM303DLHC_OUT_Z_L_M   0x06 /* Output Register Z magnetic field */
#define LSM303DLHC_POS_RECOGNITION   ((uint8_t)0xC0)

6D position recognition

#define LSM303DLHC_REFERENCE_A   0x26 /* Reference register acceleration */
#define LSM303DLHC_SINGLE_CONVERSION   ((uint8_t) 0x01)

Single-Conversion Mode

#define LSM303DLHC_SLEEP   ((uint8_t) 0x02)

Sleep Mode

#define LSM303DLHC_SR_REG_M   0x09 /* Status Register magnetic field */
#define LSM303DLHC_STATUS_REG_A   0x27 /* Status register acceleration */
#define LSM303DLHC_TEMP_OUT_H_M   0x31 /* Temperature Register magnetic field */
#define LSM303DLHC_TEMP_OUT_L_M   0x32 /* Temperature Register magnetic field */
#define LSM303DLHC_TEMPSENSOR_DISABLE   ((uint8_t) 0x00)

Temp sensor Disable

#define LSM303DLHC_TEMPSENSOR_ENABLE   ((uint8_t) 0x80)

Mag_Temperature_SensorTemp sensor Enable

#define LSM303DLHC_TIME_LATENCY_A   0x3C /* Time Latency Register acceleration */
#define LSM303DLHC_TIME_LIMIT_A   0x3B /* Time Limit Register acceleration */
#define LSM303DLHC_TIME_WINDOW_A   0x3D /* Time window register acceleration */
#define LSM303DLHC_X_DOUBLE_CLICK   ((uint8_t)0x02)

X double click IRQs

#define LSM303DLHC_X_ENABLE   ((uint8_t)0x01)

Acc_Axes_Selection

#define LSM303DLHC_X_HIGH   ((uint8_t)0x02)

X High enabled IRQs

#define LSM303DLHC_X_LOW   ((uint8_t)0x01)

X low enabled IRQs

#define LSM303DLHC_X_SINGLE_CLICK   ((uint8_t)0x01)

X single click IRQs

#define LSM303DLHC_Y_DOUBLE_CLICK   ((uint8_t)0x08)

Y double click IRQs

#define LSM303DLHC_Y_ENABLE   ((uint8_t)0x02)
#define LSM303DLHC_Y_HIGH   ((uint8_t)0x08)

Y High enabled IRQs

#define LSM303DLHC_Y_LOW   ((uint8_t)0x04)

Y low enabled IRQs

#define LSM303DLHC_Y_SINGLE_CLICK   ((uint8_t)0x04)

Y single click IRQs

#define LSM303DLHC_Z_DOUBLE_CLICK   ((uint8_t)0x20)

Acc_INT_ClickZ double click IRQs

#define LSM303DLHC_Z_ENABLE   ((uint8_t)0x04)
#define LSM303DLHC_Z_HIGH   ((uint8_t)0x20)

Acc_INT_AxesZ High enabled IRQs

#define LSM303DLHC_Z_LOW   ((uint8_t)0x10)

Z low enabled IRQs

#define LSM303DLHC_Z_SINGLE_CLICK   ((uint8_t)0x10)

Z single click IRQs

#define MAG_I2C_ADDRESS   0x3C

Function Documentation

bool lsm303dlhcAccDetect ( acc_t acc)

Here is the call graph for this function: