Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=STM32duino ISM330DHCX
version=2.1.1
version=2.1.2
author=SRA
maintainer=stm32duino
sentence=High-Performance 3D digital accelerometer and 3D digital gyroscope.
Expand Down
40 changes: 40 additions & 0 deletions src/ISM330DHCXSensor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2177,6 +2177,26 @@ ISM330DHCXStatusTypeDef ISM330DHCXSensor::FIFO_ACC_Get_Axes(int32_t *Acceleratio
return ISM330DHCX_OK;
}

/**
* @brief Get the ISM330DHCX FIFO accelero single sample (16-bit data per 3 axes) raw data
* @param Acceleration FIFO accelerometer raw axes reading
* @retval 0 in case of success, an error code otherwise
*/
ISM330DHCXStatusTypeDef ISM330DHCXSensor::FIFO_ACC_Get_AxesRaw(int16_t *AccelerationRaw)
{
uint8_t data[6];

if (FIFO_Get_Data(data) != ISM330DHCX_OK) {
return ISM330DHCX_ERROR;
}

AccelerationRaw[0] = ((int16_t)data[1] << 8) | data[0];
AccelerationRaw[1] = ((int16_t)data[3] << 8) | data[2];
AccelerationRaw[2] = ((int16_t)data[5] << 8) | data[4];

return ISM330DHCX_OK;
}

/**
* @brief Get the ISM330DHCX FIFO gyro single sample (16-bit data per 3 axes) and calculate angular velocity [mDPS]
* @param AngularVelocity FIFO gyroscope axes [mDPS]
Expand Down Expand Up @@ -2212,6 +2232,26 @@ ISM330DHCXStatusTypeDef ISM330DHCXSensor::FIFO_GYRO_Get_Axes(int32_t *AngularVel
return ISM330DHCX_OK;
}

/**
* @brief Get the ISM330DHCX FIFO gyro single sample (16-bit data per 3 axes) raw data
* @param AngularVelocity FIFO gyroscope raw axes reading
* @retval 0 in case of success, an error code otherwise
*/
ISM330DHCXStatusTypeDef ISM330DHCXSensor::FIFO_GYRO_Get_AxesRaw(int16_t *AngularVelocityRaw)
{
uint8_t data[6];

if (FIFO_Get_Data(data) != ISM330DHCX_OK) {
return ISM330DHCX_ERROR;
}

AngularVelocityRaw[0] = ((int16_t)data[1] << 8) | data[0];
AngularVelocityRaw[1] = ((int16_t)data[3] << 8) | data[2];
AngularVelocityRaw[2] = ((int16_t)data[5] << 8) | data[4];

return ISM330DHCX_OK;
}

/**
* @brief Enable ISM330DHCX accelerometer DRDY interrupt on INT1
* @retval 0 in case of success, an error code otherwise
Expand Down
2 changes: 2 additions & 0 deletions src/ISM330DHCXSensor.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,9 @@ class ISM330DHCXSensor {
ISM330DHCXStatusTypeDef FIFO_Get_Tag(uint8_t *Tag);
ISM330DHCXStatusTypeDef FIFO_Get_Data(uint8_t *Data);
ISM330DHCXStatusTypeDef FIFO_ACC_Get_Axes(int32_t *Acceleration);
ISM330DHCXStatusTypeDef FIFO_ACC_Get_AxesRaw(int16_t *AccelerationRaw);
ISM330DHCXStatusTypeDef FIFO_GYRO_Get_Axes(int32_t *AngularVelocity);
ISM330DHCXStatusTypeDef FIFO_GYRO_Get_AxesRaw(int16_t *AngularVelocityRaw);

ISM330DHCXStatusTypeDef ACC_Enable_DRDY_On_INT1();
ISM330DHCXStatusTypeDef ACC_Disable_DRDY_On_INT1();
Expand Down