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.
Dependents: UoY-32C-lab8-exercise UoY-32C-lab5-lsm303d
LSM303D Class Reference
#include <LSM303D.h>
Data Structures | |
class | Option |
Class representing binary (on/off) options. More... | |
class | Register |
Read-only register class. More... | |
class | RWRegister |
Read-write register class. More... | |
Public Types | |
enum | AccelRate { powerdown = 0x00, rate_3_125Hz = 0x10, rate_6_25Hz = 0x20, rate_12_5Hz = 0x30, rate_25Hz = 0x40, rate_50Hz = 0x50, rate_100Hz = 0x60, rate_200Hz = 0x70, rate_400Hz = 0x80, rate_800Hz = 0x90, rate_1600Hz = 0xA0 } |
AccelRate enum. More... | |
enum | AccelFilter { filter_773Hz = 0x00, filter_194Hz = 0x40, filter_362Hz = 0x80, filter_50Hz = 0xC0 } |
AccelFilter enum. More... | |
enum | AccelScale { scale_2g = 0x00, scale_4g = 0x08, scale_6g = 0x10, scale_8g = 0x18, scale_16g = 0x20 } |
AccelScale enum. More... | |
enum | MagRes { high = 0x60, low = 0x00 } |
MagRes enum. More... | |
enum | MagRate { rate_3_125Hz = 0x10, rate_6_25Hz = 0x20, rate_12_5Hz = 0x30, rate_25Hz = 0x40, rate_50Hz = 0x50, rate_100Hz = 0x60 } |
MagRate enum. More... | |
enum | MagScale { scale_2G = 0x00, scale_4G = 0x20, scale_8G = 0x40, scale_12G = 0x60 } |
MagScale enum. More... | |
enum | MagMode { continuous = 0x00, single = 0x01, powerdown = 0x00 } |
MagScale enum. More... | |
Public Member Functions | |
void | setAccelRate (AccelRate const &rate) |
Sets the accelerometer update rate. | |
void | setAccelFilterFreq (AccelFilter const &freq) |
Sets the accelerometer antialiasing filter frequency. | |
void | setAccelScale (AccelScale const &scale) |
Sets the accelerometer scale range. | |
void | setMagRes (MagRes const &res) |
Sets the magnetometer resolution. | |
void | setMagRate (MagRate const &rate) |
Sets the magnetometer update rate. | |
void | setMagScale (MagScale const &scale) |
Sets the magnetometer scale range. | |
void | setMagMode (MagMode const &mode) |
Sets the magnetometer mode. | |
LSM303D (PinName sda, PinName scl, unsigned char i2c_addr=0x1D) | |
Constructor. | |
i16 | getRawAccelX () |
Gets the raw (signed 16-bit integer) X-axis acceleration value. | |
i16 | getRawAccelY () |
Gets the raw (signed 16-bit integer) Y-axis acceleration value. | |
i16 | getRawAccelZ () |
Gets the raw (signed 16-bit integer) Z-axis acceleration value. | |
float | getAccelX () |
Gets the scaled (float) X-axis acceleration value in g. | |
float | getAccelY () |
Gets the scaled (float) Y-axis acceleration value in g. | |
float | getAccelZ () |
Gets the scaled (float) Z-axis acceleration value in g. | |
void | getRawAccelInto (short &x, short &y, short &z) |
Reads the raw (signed 16-bit integer) acceleration values into the three axis value containers provided. | |
void | getAccelInto (float &x, float &y, float &z) |
Reads the scaled (float) acceleration values in g into the three axis value containers provided. | |
i16 | getRawMagX () |
Gets the raw (signed 16-bit integer) X-axis magnetometer value. | |
i16 | getRawMagY () |
Gets the raw (signed 16-bit integer) Y-axis magnetometer value. | |
i16 | getRawMagZ () |
Gets the raw (signed 16-bit integer) Z-axis magnetometer value. | |
float | getMagX () |
Gets the scaled (float) X-axis magnetometer value in Gauss. | |
float | getMagY () |
Gets the scaled (float) Y-axis magnetometer value in Gauss. | |
float | getMagZ () |
Gets the scaled (float) Z-axis magnetometer value in Gauss. | |
void | getRawMagInto (short &x, short &y, short &z) |
Reads the raw (signed 16-bit integer) magnetometer values into the three axis value containers provided. | |
void | getMagInto (float &x, float &y, float &z) |
Reads the scaled (float) magnetometer values in Gauss into the three axis value containers provided. | |
float | getTemp () |
Reads the scaled (float) temperature values in C. | |
Data Fields | |
const Register< i16 > | TEMP_OUT |
TEMP_OUT register, read-only. | |
const Register< u8 > | STATUS_M |
STATUS_M register, read-only. | |
const Register< i16 > | OUT_X_M |
OUT_X_M register, read-only. | |
const Register< i16 > | OUT_Y_M |
OUT_Y_M register, read-only. | |
const Register< i16 > | OUT_Z_M |
OUT_Z_M register, read-only. | |
const Register< u8 > | WHO_AM_I |
WHO_AM_I register, read-only. | |
const Register< u8 > | INT_SRC_M |
INT_SRC_M register, read-only. | |
const Register< i16 > | OFFSET_X_M |
OFFSET_X_M register, read-only. | |
const Register< i16 > | OFFSET_Y_M |
OFFSET_Y_M register, read-only. | |
const Register< i16 > | OFFSET_Z_M |
OFFSET_Z_M register, read-only. | |
const Register< u8 > | STATUS_A |
STATUS_A register, read-only. | |
const Register< i16 > | OUT_X_A |
OUT_X_A register, read-only. | |
const Register< i16 > | OUT_Y_A |
OUT_Y_A register, read-only. | |
const Register< i16 > | OUT_Z_A |
OUT_Z_A register, read-only. | |
const Register< u8 > | FIFO_SRC |
FIFO_SRC register, read-only. | |
const Register< u8 > | IG_SRC1 |
IG_SRC1 register, read-only. | |
const Register< u8 > | IG_SRC2 |
IG_SRC2 register, read-only. | |
const Register< u8 > | CLICK_SRC |
CLICK_SRC register, read-only. | |
RWRegister< u8 > | INT_CTRL_M |
INT_CTRL_M register, read-write. | |
RWRegister< u16 > | INT_THS_M |
INT_THS_M register, read-write. | |
RWRegister< u8 > | REFERENCE_X |
REFERENCE_X register, read-write. | |
RWRegister< u8 > | REFERENCE_Y |
REFERENCE_Y register, read-write. | |
RWRegister< u8 > | REFERENCE_Z |
REFERENCE_Z register, read-write. | |
RWRegister< u8 > | CTRL0 |
CTRL0 register, read-write. | |
RWRegister< u8 > | CTRL1 |
CTRL1 register, read-write. | |
RWRegister< u8 > | CTRL2 |
CTRL2 register, read-write. | |
RWRegister< u8 > | CTRL3 |
CTRL3 register, read-write. | |
RWRegister< u8 > | CTRL4 |
CTRL4 register, read-write. | |
RWRegister< u8 > | CTRL5 |
CTRL5 register, read-write. | |
RWRegister< u8 > | CTRL6 |
CTRL6 register, read-write. | |
RWRegister< u8 > | CTRL7 |
CTRL7 register, read-write. | |
RWRegister< u8 > | FIFO_CTRL |
FIFO_CTRL register, read-write. | |
RWRegister< u8 > | IG_CFG1 |
IG_CFG1 register, read-write. | |
RWRegister< u8 > | IG_THS1 |
IG_THS1 register, read-write. | |
RWRegister< u8 > | IG_DUR1 |
IG_DUR1 register, read-write. | |
RWRegister< u8 > | IG_CFG2 |
IG_CFG2 register, read-write. | |
RWRegister< u8 > | IG_THS2 |
IG_THS2 register, read-write. | |
RWRegister< u8 > | IG_DUR2 |
IG_DUR2 register, read-write. | |
RWRegister< u8 > | CLICK_CFG |
CLICK_CFG register, read-write. | |
RWRegister< u8 > | CLICK_THS |
CLICK_THS register, read-write. | |
RWRegister< u8 > | TIME_LIMIT |
TIME_LIMIT register, read-write. | |
RWRegister< u8 > | TIME_LATENCY |
TIME_LATENCY register, read-write. | |
RWRegister< u8 > | TIME_WINDOW |
TIME_WINDOW register, read-write. | |
RWRegister< u8 > | Act_THS |
Act_THS register, read-write. | |
RWRegister< u8 > | Act_DUR |
Act_DUR register, read-write. | |
const Option< u8 > | accel_enableX |
Enable or disable x-axis accelerometer. | |
const Option< u8 > | accel_enableY |
Enable or disable y-axis accelerometer. | |
const Option< u8 > | accel_enableZ |
Enable or disable z-axis accelerometer. | |
const Option< u8 > | accel_enableAll |
Enable or disable all accelerometers. | |
const Option< u8 > | INT1_enable_BOOT |
Enable or disable "boot" source for INT1. | |
const Option< u8 > | INT1_enable_CLICK |
Enable or disable "click" source for INT1. | |
const Option< u8 > | INT1_enable_IG1 |
Enable or disable "inertial 1" source for INT1. | |
const Option< u8 > | INT1_enable_IG2 |
Enable or disable "inertial 2" source for INT1. | |
const Option< u8 > | INT1_enable_IGM |
Enable or disable "magnetic" source for INT1. | |
const Option< u8 > | INT1_enable_DRDY_A |
Enable or disable "accelerometer data ready" source for INT1. | |
const Option< u8 > | INT1_enable_DRDY_M |
Enable or disable "magnetometer data ready" source for INT1. | |
const Option< u8 > | INT1_enable_EMPTY |
Enable or disable "FIFO empty" source for INT1. | |
const Option< u8 > | temp_enable |
Enable or disable temperature sensor. | |
const Option< u8 > | LIR1_enable |
Enable or disable latching interrupt requests for INT1. | |
Protected Attributes | |
const Register< i16_3 > | OUT_M |
Triple magnetometer register. | |
const Register< i16_3 > | OFFSET_M |
Triple magnetometer offset register. | |
const Register< u8_3 > | REFERENCE |
Triple reference register. | |
const Register< i16_3 > | OUT_A |
Triple accelerometer register. |
Detailed Description
LSM303D class.
Communicates with LSM303D electronic compass over I2C. Accelerometer, magnetometer and temperature sensor supported. Configurable sample rates and full-scale ranges. All LSM303D config registers available for raw reads and writes if needed.
Example:
#include "mbed.h" #include "lsm303d.h" LSM303D lsm303d(SDA, SCL); lsm303d.setAccelRate(LSM303D::AccelRate::rate_25Hz); lsm303d.setAccelScale(LSM303D::AccelScale::scale_8g); int main() { short x, y, z; lsm303d.getRawAccelInto(x, y, z); // 16-bit signed, unscaled float xf, yf, zf; lsm303d.getAccelInto(xf, yf, zf); // floats, in g }
Definition at line 44 of file LSM303D.h.
Member Enumeration Documentation
enum AccelFilter |
enum AccelRate |
AccelRate enum.
Provides friendly names for the accelerometer update rates that are provided by the device.
- Enumerator:
enum AccelScale |
enum MagMode |
enum MagRate |
enum MagRes |
enum MagScale |
Constructor & Destructor Documentation
LSM303D | ( | PinName | sda, |
PinName | scl, | ||
unsigned char | i2c_addr = 0x1D |
||
) |
Constructor.
- Parameters:
-
sda The pin to use for the I^^2^^C SDA signal. scl The pin to use for the I^^2^^C SCL signal. i2c_addr The 7-bit I2C address. Defaults to 0x1D, but this can be overridden to 0x1E with a jumper setting on the device allowing two LSM303D devices to coexist on a bus.
Definition at line 6 of file LSM303D.cpp.
Member Function Documentation
void getAccelInto | ( | float & | x, |
float & | y, | ||
float & | z | ||
) |
Reads the scaled (float) acceleration values in g into the three axis value containers provided.
- Parameters:
-
x Container for the X value. y Container for the Y value. z Container for the Z value.
Definition at line 98 of file LSM303D.cpp.
float getAccelX | ( | ) |
float getAccelY | ( | ) |
float getAccelZ | ( | ) |
void getMagInto | ( | float & | x, |
float & | y, | ||
float & | z | ||
) |
Reads the scaled (float) magnetometer values in Gauss into the three axis value containers provided.
- Parameters:
-
x Container for the X value. y Container for the Y value. z Container for the Z value.
Definition at line 113 of file LSM303D.cpp.
float getMagX | ( | ) |
float getMagY | ( | ) |
float getMagZ | ( | ) |
void getRawAccelInto | ( | short & | x, |
short & | y, | ||
short & | z | ||
) |
Reads the raw (signed 16-bit integer) acceleration values into the three axis value containers provided.
- Parameters:
-
x Container for the X value. y Container for the Y value. z Container for the Z value.
Definition at line 91 of file LSM303D.cpp.
i16 getRawAccelX | ( | ) |
i16 getRawAccelY | ( | ) |
i16 getRawAccelZ | ( | ) |
void getRawMagInto | ( | short & | x, |
short & | y, | ||
short & | z | ||
) |
Reads the raw (signed 16-bit integer) magnetometer values into the three axis value containers provided.
- Parameters:
-
x Container for the X value. y Container for the Y value. z Container for the Z value.
Definition at line 106 of file LSM303D.cpp.
i16 getRawMagX | ( | ) |
i16 getRawMagY | ( | ) |
i16 getRawMagZ | ( | ) |
float getTemp | ( | ) |
void setAccelFilterFreq | ( | AccelFilter const & | freq ) |
Sets the accelerometer antialiasing filter frequency.
- Parameters:
-
freq The new frequency. Available values are: - AccelFilter::filter_773Hz
- AccelFilter::filter_194Hz
- AccelFilter::filter_362Hz
- AccelFilter::filter_50Hz
Definition at line 126 of file LSM303D.cpp.
void setAccelRate | ( | AccelRate const & | rate ) |
Sets the accelerometer update rate.
- Parameters:
-
rate The new update rate. Available values are: - AccelRate::powerdown (power-down mode)
- AccelRate::rate_3_125Hz (3.125Hz)
- AccelRate::rate_6_25Hz (6.25Hz)
- AccelRate::rate_12_5Hz (12.5Hz)
- AccelRate::rate_25Hz (25Hz)
- AccelRate::rate_50Hz (50Hz)
- AccelRate::rate_100Hz (100Hz)
- AccelRate::rate_200Hz (200Hz)
- AccelRate::rate_400Hz (400Hz)
- AccelRate::rate_800Hz (800Hz)
- AccelRate::rate_1600Hz (1600Hz)
Definition at line 121 of file LSM303D.cpp.
void setAccelScale | ( | AccelScale const & | scale ) |
Sets the accelerometer scale range.
- Parameters:
-
scale The new scale. Available values are: - AccelScale::scale_2g (+-2g)
- AccelScale::scale_4g (+-4g)
- AccelScale::scale_6g (+-6g)
- AccelScale::scale_8g (+-8g)
- AccelScale::scale_16g (+-16g)
Definition at line 131 of file LSM303D.cpp.
void setMagMode | ( | MagMode const & | mode ) |
Sets the magnetometer mode.
- Parameters:
-
mode The new mode. Available values are: - MagMode::continuous (continuous conversion mode)
- MagMode::single (single-conversion mode)
- MagMode::powerdown (power-down mode)
Definition at line 153 of file LSM303D.cpp.
void setMagRate | ( | MagRate const & | rate ) |
Sets the magnetometer update rate.
- Parameters:
-
rate The new update rate. Available values are: - MagRate::rate_3_125Hz (3.125Hz)
- MagRate::rate_6_25Hz (6.25Hz)
- MagRate::rate_12_5Hz (12.5Hz)
- MagRate::rate_25Hz (25Hz)
- MagRate::rate_50Hz (50Hz)
- MagRate::rate_100Hz (100Hz) Note that the 100Hz update rate is available only if the accelerometer update rate is set to 50Hz or higher or the accelerometer is set to power-down mode (see setAccelRate()). Failing to meet these conditions will lead to undefined behaviour.
Definition at line 142 of file LSM303D.cpp.
void setMagRes | ( | MagRes const & | res ) |
Sets the magnetometer resolution.
- Parameters:
-
res The new resolution. Available values are: - MagRes::high (high resolution)
- MagRes::low (low resolution)
Definition at line 137 of file LSM303D.cpp.
void setMagScale | ( | MagScale const & | scale ) |
Sets the magnetometer scale range.
- Parameters:
-
scale The new scale. Available values are: - MagScale::scale_2G (+-2 Gauss)
- MagScale::scale_4G (+-4 Gauss)
- MagScale::scale_8G (+-8 Gauss)
- MagScale::scale_12G (+-16 Gauss)
Definition at line 147 of file LSM303D.cpp.
Field Documentation
const Option<u8> accel_enableAll |
const Option<u8> accel_enableX |
const Option<u8> accel_enableY |
const Option<u8> accel_enableZ |
RWRegister<u8> Act_DUR |
RWRegister<u8> Act_THS |
RWRegister<u8> CLICK_CFG |
RWRegister<u8> CLICK_THS |
RWRegister<u8> CTRL0 |
RWRegister<u8> CTRL1 |
RWRegister<u8> CTRL2 |
RWRegister<u8> CTRL3 |
RWRegister<u8> CTRL4 |
RWRegister<u8> CTRL5 |
RWRegister<u8> CTRL6 |
RWRegister<u8> CTRL7 |
RWRegister<u8> FIFO_CTRL |
RWRegister<u8> IG_CFG1 |
RWRegister<u8> IG_CFG2 |
RWRegister<u8> IG_DUR1 |
RWRegister<u8> IG_DUR2 |
RWRegister<u8> IG_THS1 |
RWRegister<u8> IG_THS2 |
const Option<u8> INT1_enable_BOOT |
const Option<u8> INT1_enable_CLICK |
const Option<u8> INT1_enable_DRDY_A |
const Option<u8> INT1_enable_DRDY_M |
const Option<u8> INT1_enable_EMPTY |
const Option<u8> INT1_enable_IG1 |
const Option<u8> INT1_enable_IG2 |
const Option<u8> INT1_enable_IGM |
RWRegister<u8> INT_CTRL_M |
RWRegister<u16> INT_THS_M |
const Option<u8> LIR1_enable |
const Register<i16> OFFSET_X_M |
const Register<i16> OFFSET_Y_M |
const Register<i16> OFFSET_Z_M |
const Option<u8> temp_enable |
RWRegister<u8> TIME_LIMIT |
Generated on Fri Jul 15 2022 15:42:00 by
