upm
1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
|
Go to the source code of this file.
Data Structures | |
struct | _lis3dh_context |
Functions | |
lis3dh_context | lis3dh_init (int bus, int addr, int cs) |
void | lis3dh_close (lis3dh_context dev) |
upm_result_t | lis3dh_devinit (const lis3dh_context dev, LIS3DH_ODR_T odr, LIS3DH_FS_T fs, bool high_res) |
upm_result_t | lis3dh_enable_axes (const lis3dh_context dev, bool x_axis_enable, bool y_axis_enable, bool z_axis_enable) |
upm_result_t | lis3dh_enable_bdu_mode (const lis3dh_context dev, bool bdu_enable) |
upm_result_t | lis3dh_enable_lp_mode (const lis3dh_context dev, bool lp_enable) |
upm_result_t | lis3dh_enable_hr_mode (const lis3dh_context dev, bool hr_enable) |
upm_result_t | lis3dh_enable_normal_mode (const lis3dh_context dev) |
upm_result_t | lis3dh_enable_hp_filtering (const lis3dh_context dev, bool filter) |
upm_result_t | lis3dh_enable_adc (const lis3dh_context dev, bool adc_enable) |
upm_result_t | lis3dh_enable_temperature (const lis3dh_context dev, bool temperature_enable) |
upm_result_t | lis3dh_enable_interrupt_latching (const lis3dh_context dev, bool int1_latch, bool int2_latch) |
upm_result_t | lis3dh_set_odr (const lis3dh_context dev, LIS3DH_ODR_T odr) |
upm_result_t | lis3dh_set_full_scale (const lis3dh_context dev, LIS3DH_FS_T fs) |
upm_result_t | lis3dh_set_interrupt_active_high (const lis3dh_context dev, bool high) |
upm_result_t | lis3dh_set_int1_config (const lis3dh_context dev, uint8_t cfg) |
upm_result_t | lis3dh_set_int2_config (const lis3dh_context dev, uint8_t cfg) |
uint8_t | lis3dh_read_reg (const lis3dh_context dev, uint8_t reg) |
int | lis3dh_read_regs (const lis3dh_context dev, uint8_t reg, uint8_t *buffer, int len) |
upm_result_t | lis3dh_write_reg (const lis3dh_context dev, uint8_t reg, uint8_t val) |
upm_result_t | lis3dh_update (const lis3dh_context dev) |
uint8_t | lis3dh_get_chip_id (const lis3dh_context dev) |
void | lis3dh_get_accelerometer (const lis3dh_context dev, float *x, float *y, float *z) |
float | lis3dh_get_temperature (const lis3dh_context dev) |
uint8_t | lis3dh_get_status (const lis3dh_context dev) |
uint8_t | lis3dh_get_status_aux (const lis3dh_context dev) |
upm_result_t | lis3dh_install_isr (const lis3dh_context dev, LIS3DH_INTERRUPT_PINS_T intr, int gpio, mraa_gpio_edge_t level, void(*isr)(void *), void *arg) |
void | lis3dh_uninstall_isr (const lis3dh_context dev, LIS3DH_INTERRUPT_PINS_T intr) |
Typedefs | |
typedef struct _lis3dh_context * | lis3dh_context |
lis3dh_context lis3dh_init | ( | int | bus, |
int | addr, | ||
int | cs | ||
) |
LIS3DH initialization.
This device can support both I2C and SPI. For SPI, set the addr to -1, and specify a positive integer representing the Chip Select (CS) pin for the cs argument. If you are using a hardware CS pin (like Intel Edison with Arduino breakout), then you can connect the proper pin to the hardware CS pin on your MCU and supply -1 for cs.
bus | I2C or SPI bus to use |
addr | The address for this device, or -1 for SPI |
cs | The gpio pin to use for the SPI Chip Select. Use -1 for I2C or for SPI with a hardware controlled pin. |
void lis3dh_close | ( | lis3dh_context | dev | ) |
LIS3DH Destructor
dev | The device context |
upm_result_t lis3dh_devinit | ( | const lis3dh_context | dev, |
LIS3DH_ODR_T | odr, | ||
LIS3DH_FS_T | fs, | ||
bool | high_res | ||
) |
Initialize the device and start operation. This function is called from lis3dh_init(), so it will not need to be called by a user unless the device is reset.
dev | The device context |
odr | One of the LIS3DH_ODR_T values |
fs | One of the LIS3DH_FS_T values |
high_res | true to enable high resolution mode, false to disable |
upm_result_t lis3dh_enable_axes | ( | const lis3dh_context | dev, |
bool | x_axis_enable, | ||
bool | y_axis_enable, | ||
bool | z_axis_enable | ||
) |
Enable or disable specific axes.
dev | The device context |
x_axis_enable | true to enable X axis, false to disable |
y_axis_enable | true to enable Y axis, false to disable |
z_axis_enable | true to enable Z axis, false to disable |
upm_result_t lis3dh_enable_bdu_mode | ( | const lis3dh_context | dev, |
bool | bdu_enable | ||
) |
Enable or disable Block Data Update (BDU) mode.
dev | The device context |
bdu_enable | true to enable BDU mode, false to disable |
upm_result_t lis3dh_enable_lp_mode | ( | const lis3dh_context | dev, |
bool | lp_enable | ||
) |
Enable or disable Low Power (LP) mode. Checks if mutually exclusive High Resolution (HR) mode is enabled and bails out if yes.
dev | The device context |
lp_enable | true to enable LP mode, false to disable |
upm_result_t lis3dh_enable_hr_mode | ( | const lis3dh_context | dev, |
bool | hr_enable | ||
) |
Enable or disable High Resolution (HR) mode. Checks if mutually exclusive Low Power (LP) mode is enabled and bails out if yes.
dev | The device context |
hr_enable | true to enable HR mode, false to disable |
upm_result_t lis3dh_enable_normal_mode | ( | const lis3dh_context | dev | ) |
Enable Normal mode by explicitly disabling LP and HR ones. Note that there's no "disable" part as it's generally unknown, which mode we were in previously. To get out of Normal mode, just enable HR or LP one.
dev | The device context |
upm_result_t lis3dh_enable_hp_filtering | ( | const lis3dh_context | dev, |
bool | filter | ||
) |
Enable high pass filtering of the accelerometer axis data. lis3dh_devinit() disables this by default. See the datasheet for details.
dev | The device context |
filter | true to enable filtering, false to disable |
upm_result_t lis3dh_enable_adc | ( | const lis3dh_context | dev, |
bool | adc_enable | ||
) |
Enable or disable built-in Analog-to-Digital Converter (ADC).
dev | The device context |
adc_enable | true to enable ADC, false to disable |
upm_result_t lis3dh_enable_temperature | ( | const lis3dh_context | dev, |
bool | temperature_enable | ||
) |
Enable or disable built-in temperature sensor. It depends on ADC being enabled, so we enable it unconditionally. See datasheet for details.
dev | The device context |
temperature_enable | true to enable temp sensor, false to disable |
upm_result_t lis3dh_enable_interrupt_latching | ( | const lis3dh_context | dev, |
bool | int1_latch, | ||
bool | int2_latch | ||
) |
Enable or disable interrupt latching for INT1 and INT2. See the datasheet for details.
dev | The device context |
int1_latch | true to enable latching for INT1, false to disable |
int2_latch | true to enable latching for INT2, false to disable |
upm_result_t lis3dh_set_odr | ( | const lis3dh_context | dev, |
LIS3DH_ODR_T | odr | ||
) |
Set the output data rate (ODR) of the device
dev | The device context |
odr | One of the LIS3DH_ODR_T values |
upm_result_t lis3dh_set_full_scale | ( | const lis3dh_context | dev, |
LIS3DH_FS_T | fs | ||
) |
Set the full scale (FS) of the device. This device supports a full scale of 2, 4, 8, and 16G.
dev | The device context |
fs | One of the LIS3DH_FS_T values |
upm_result_t lis3dh_set_interrupt_active_high | ( | const lis3dh_context | dev, |
bool | high | ||
) |
Indicate whether INT1 and INT2 interrupts should be active high (default) or active low. See the datasheet for details.
dev | The device context |
high | true for active high, false for active low |
upm_result_t lis3dh_set_int1_config | ( | const lis3dh_context | dev, |
uint8_t | cfg | ||
) |
Set interrupt 1 configuration. See the datasheet for details.
dev | The device context |
cfg | A bitmask of values from LIS3DH_CTRL_REG3_BITS_T |
upm_result_t lis3dh_set_int2_config | ( | const lis3dh_context | dev, |
uint8_t | cfg | ||
) |
Set interrupt 2 configuration. See the datasheet for details.
dev | The device context |
cfg | A bitmask of values from LIS3DH_CTRL_REG6_BITS_T |
uint8_t lis3dh_read_reg | ( | const lis3dh_context | dev, |
uint8_t | reg | ||
) |
Read a register
dev | The device context |
reg | The register to read |
int lis3dh_read_regs | ( | const lis3dh_context | dev, |
uint8_t | reg, | ||
uint8_t * | buffer, | ||
int | len | ||
) |
Read contiguous registers into a buffer
dev | The device context |
reg | The register to start the read from |
buffer | The buffer to store the results |
len | The number of registers to read |
upm_result_t lis3dh_write_reg | ( | const lis3dh_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 |
upm_result_t lis3dh_update | ( | const lis3dh_context | dev | ) |
Update the internal stored values from sensor data
dev | The device context |
uint8_t lis3dh_get_chip_id | ( | const lis3dh_context | dev | ) |
Return the chip ID
dev | The device context |
void lis3dh_get_accelerometer | ( | const lis3dh_context | dev, |
float * | x, | ||
float * | y, | ||
float * | z | ||
) |
Return accelerometer data gravities (g). lis3dh_update() must have been called prior to calling this method.
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 lis3dh_get_temperature | ( | const lis3dh_context | dev | ) |
Return the current measured temperature. Note, this is not ambient temperature. lis3dh_update() must have been called prior to calling this method.
dev | The device context |
uint8_t lis3dh_get_status | ( | const lis3dh_context | dev | ) |
Return the contents of the status register
dev | The device context |
uint8_t lis3dh_get_status_aux | ( | const lis3dh_context | dev | ) |
Return the contents of the status aux register
dev | The device context |
upm_result_t lis3dh_install_isr | ( | const lis3dh_context | dev, |
LIS3DH_INTERRUPT_PINS_T | intr, | ||
int | gpio, | ||
mraa_gpio_edge_t | level, | ||
void(*)(void *) | isr, | ||
void * | arg | ||
) |
Install an interrupt handler
dev | The device context |
intr | One of the LIS3DH_INTERRUPT_PINS_T values specifying which interrupt pin you are installing |
gpio | GPIO pin to use as interrupt pin |
level | The interrupt trigger level (one of mraa_gpio_edge_t values). Make sure that you have configured the interrupt pin properly for whatever level you choose. |
isr | The interrupt handler, accepting a void * argument |
arg | The argument to pass the the interrupt handler |
void lis3dh_uninstall_isr | ( | const lis3dh_context | dev, |
LIS3DH_INTERRUPT_PINS_T | intr | ||
) |
Uninstall a previously installed interrupt handler
dev | The device context |
intr | One of the LIS3DH_INTERRUPT_PINS_T values specifying which interrupt pin you are removing |
typedef struct _lis3dh_context * lis3dh_context |
Device context