upm
1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
|
Go to the source code of this file.
Data Structures | |
struct | _lsm303d_context |
Functions | |
lsm303d_context | lsm303d_init (int bus, int addr) |
void | lsm303d_close (lsm303d_context dev) |
upm_result_t | lsm303d_update (const lsm303d_context dev) |
void | lsm303d_get_magnetometer (const lsm303d_context dev, float *x, float *y, float *z) |
void | lsm303d_get_accelerometer (const lsm303d_context dev, float *x, float *y, float *z) |
float | lsm303d_get_temperature (const lsm303d_context dev) |
upm_result_t | lsm303d_set_acc_full_scale (const lsm303d_context dev, LSM303D_AFS_T fs) |
upm_result_t | lsm303d_set_mag_full_scale (const lsm303d_context dev, LSM303D_MFS_T fs) |
upm_result_t | lsm303d_devinit (const lsm303d_context dev, LSM303D_M_RES_T res) |
upm_result_t | lsm303d_set_acc_odr (const lsm303d_context dev, LSM303D_AODR_T odr) |
upm_result_t | lsm303d_set_mag_odr (const lsm303d_context dev, LSM303D_MODR_T odr) |
uint8_t | lsm303d_read_reg (const lsm303d_context dev, uint8_t reg) |
int | lsm303d_read_regs (const lsm303d_context dev, uint8_t reg, uint8_t *buffer, int len) |
upm_result_t | lsm303d_write_reg (const lsm303d_context dev, uint8_t reg, uint8_t val) |
Typedefs | |
typedef struct _lsm303d_context * | lsm303d_context |
lsm303d_context lsm303d_init | ( | int | bus, |
int | addr | ||
) |
LSM303D initialization
This driver only supports I2C.
Due to the fact that this chip is currently obsolete, we only support minimum functionality.
bus | I2C bus to use |
addr | The I2C address of the device |
void lsm303d_close | ( | lsm303d_context | dev | ) |
LSM303D Destructor
dev | The device context |
upm_result_t lsm303d_update | ( | const lsm303d_context | dev | ) |
Update the internal stored values from sensor data
dev | The device context |
void lsm303d_get_magnetometer | ( | const lsm303d_context | dev, |
float * | x, | ||
float * | y, | ||
float * | z | ||
) |
Return magnetometer data in micro-Teslas (uT). update() must have been called prior to calling this function.
dev | The device context |
x | Pointer to a floating point value that will have the current x component placed into it |
y | Pointer to a floating point value that will have the current y component placed into it |
z | Pointer to a floating point value that will have the current z component placed into it |
void lsm303d_get_accelerometer | ( | const lsm303d_context | dev, |
float * | x, | ||
float * | y, | ||
float * | z | ||
) |
Return accelerometer data in gravities. update() must have been called prior to calling this function.
dev | The device context |
x | Pointer to a floating point value that will have the current x component placed into it |
y | Pointer to a floating point value that will have the current y component placed into it |
z | Pointer to a floating point value that will have the current z component placed into it |
float lsm303d_get_temperature | ( | const lsm303d_context | dev | ) |
Return temperature data in degrees Celsius.. update() must have been called prior to calling this function.
dev | The device context |
upm_result_t lsm303d_set_acc_full_scale | ( | const lsm303d_context | dev, |
LSM303D_AFS_T | fs | ||
) |
Set the full scale (sensitivity) value for the accelerometer. This device supports 2G, 4G, 6G, 8G, and 16G full scale modes.
dev | The device context |
fs | One of the LSM303D_AFS_T values |
upm_result_t lsm303d_set_mag_full_scale | ( | const lsm303d_context | dev, |
LSM303D_MFS_T | fs | ||
) |
Set the full scale (sensitivity) value for the magnetometer. This device supports 2, 4, 8, and 16 Gauss.
dev | The device context |
fs | One of the LSM303D_MFS_T values |
upm_result_t lsm303d_devinit | ( | const lsm303d_context | dev, |
LSM303D_M_RES_T | res | ||
) |
Initialize the device and start operation. This function is called from the constructor so it will not typically need to be called by a user unless the device is reset. It will initialize the accelerometer and magnetometer (if enabled) to certain default running modes.
dev | The device context |
res | One of the LSM303D_M_RES_T values. This value sets the resolution of the magnetometer. At init time, this value is set to LSM303D_M_RES_HIGH. |
upm_result_t lsm303d_set_acc_odr | ( | const lsm303d_context | dev, |
LSM303D_AODR_T | odr | ||
) |
Set the accelerometer (acc) output data rate (odr)
dev | The device context |
odr | One of the LSM303D_AODR_T values. The default set at initialization time is LSM303D_AODR_100HZ. |
upm_result_t lsm303d_set_mag_odr | ( | const lsm303d_context | dev, |
LSM303D_MODR_T | odr | ||
) |
Set the magnetometer (mag) output data rate (odr)
dev | The device context |
odr | One of the LSM303D_MODR_T values. The default set at initialization time is LSM303D_MODR_12_5HZ. |
uint8_t lsm303d_read_reg | ( | const lsm303d_context | dev, |
uint8_t | reg | ||
) |
Read a register.
dev | The device context |
reg | The register to read |
int lsm303d_read_regs | ( | const lsm303d_context | dev, |
uint8_t | reg, | ||
uint8_t * | buffer, | ||
int | len | ||
) |
Read contiguous registers into a buffer
dev | The device context |
buffer | The buffer to store the results |
len | The number of registers to read |
upm_result_t lsm303d_write_reg | ( | const lsm303d_context | dev, |
uint8_t | reg, | ||
uint8_t | val | ||
) |
Write to a register
dev | The device context |
reg | The register to write to |
val | The value to write |
typedef struct _lsm303d_context * lsm303d_context |
Device context