upm
1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
|
Go to the source code of this file.
Data Structures | |
struct | _bmm150_context |
Functions | |
bmm150_context | bmm150_init (int bus, int addr, int cs) |
void | bmm150_close (bmm150_context dev) |
upm_result_t | bmm150_update (const bmm150_context dev) |
uint8_t | bmm150_get_chip_id (const bmm150_context dev) |
void | bmm150_get_magnetometer (const bmm150_context dev, float *x, float *y, float *z) |
upm_result_t | bmm150_devinit (const bmm150_context dev, BMM150_USAGE_PRESETS_T usage) |
upm_result_t | bmm150_set_preset_mode (const bmm150_context dev, BMM150_USAGE_PRESETS_T usage) |
upm_result_t | bmm150_reset (const bmm150_context dev) |
upm_result_t | bmm150_set_output_data_rate (const bmm150_context dev, BMM150_DATA_RATE_T odr) |
upm_result_t | bmm150_set_power_bit (const bmm150_context dev, bool power) |
upm_result_t | bmm150_set_opmode (const bmm150_context dev, BMM150_OPERATION_MODE_T opmode) |
BMM150_OPERATION_MODE_T | bmm150_get_opmode (const bmm150_context dev) |
uint8_t | bmm150_get_interrupt_enable (const bmm150_context dev) |
upm_result_t | bmm150_set_interrupt_enable (const bmm150_context dev, uint8_t bits) |
uint8_t | bmm150_get_interrupt_config (const bmm150_context dev) |
upm_result_t | bmm150_set_interrupt_config (const bmm150_context dev, uint8_t bits) |
uint8_t | bmm150_get_interrupt_status (const bmm150_context dev) |
upm_result_t | bmm150_set_repetitions_xy (const bmm150_context dev, uint8_t reps) |
upm_result_t | bmm150_set_repetitions_z (const bmm150_context dev, uint8_t reps) |
upm_result_t | bmm150_install_isr (const bmm150_context dev, BMM150_INTERRUPT_PINS_T intr, int gpio, mraa_gpio_edge_t level, void(*isr)(void *), void *arg) |
void | bmm150_uninstall_isr (const bmm150_context dev, BMM150_INTERRUPT_PINS_T intr) |
uint8_t | bmm150_read_reg (const bmm150_context dev, uint8_t reg) |
int | bmm150_read_regs (const bmm150_context dev, uint8_t reg, uint8_t *buffer, int len) |
upm_result_t | bmm150_write_reg (const bmm150_context dev, uint8_t reg, uint8_t val) |
Typedefs | |
typedef struct _bmm150_context * | bmm150_context |
bmm150_context bmm150_init | ( | int | bus, |
int | addr, | ||
int | cs | ||
) |
BMM150 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 edison with arduino breakout), then you can connect the proper pin to the hardware CS pin on your MCU and supply -1 for cs. The default operating mode is I2C.
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 bmm150_close | ( | bmm150_context | dev | ) |
BMM150 Destructor.
dev | The device context. |
upm_result_t bmm150_update | ( | const bmm150_context | dev | ) |
Update the internal stored values from sensor data.
dev | The device context. |
uint8_t bmm150_get_chip_id | ( | const bmm150_context | dev | ) |
Return the chip ID.
dev | The device context. |
void bmm150_get_magnetometer | ( | const bmm150_context | dev, |
float * | x, | ||
float * | y, | ||
float * | z | ||
) |
Return magnetometer data in micro-Teslas (uT). 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. |
upm_result_t bmm150_devinit | ( | const bmm150_context | dev, |
BMM150_USAGE_PRESETS_T | usage | ||
) |
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. This method will call bmm150_set_preset_mode() with the passed parameter.
dev | The device context. |
usage | One of the BMM150_USAGE_PRESETS_T values. The default is BMM150_USAGE_HIGH_ACCURACY. |
upm_result_t bmm150_set_preset_mode | ( | const bmm150_context | dev, |
BMM150_USAGE_PRESETS_T | usage | ||
) |
Set one of the Bosch recommended preset modes. These modes configure the sensor for varying use cases.
dev | The device context. |
usage | One of the BMM150_USAGE_PRESETS_T values. The default set at initilaization time is BMM150_USAGE_HIGH_ACCURACY. |
upm_result_t bmm150_reset | ( | const bmm150_context | dev | ) |
Perform a device soft-reset. The device will be placed in SUSPEND mode afterward with all configured setting lost, so some re-initialization will be required to get data from the sensor. Calling bmm150_devinit() will get everything running again.
dev | The device context. |
upm_result_t bmm150_set_output_data_rate | ( | const bmm150_context | dev, |
BMM150_DATA_RATE_T | odr | ||
) |
Set the magnetometer Output Data Rate. See the datasheet for details.
dev | The device context. |
odr | One of the BMM150_DATA_RATE_T values. |
upm_result_t bmm150_set_power_bit | ( | const bmm150_context | dev, |
bool | power | ||
) |
Set or clear the Power bit. When the power bit is cleared, the device enters a deep suspend mode where only the BMM150_REG_POWER_CTRL register can be accessed. This bit needs to be enabled for the device to operate. See the datasheet for details. The constructor enables this by default. After a deep suspend mode has been entered, all configured data is lost and the device must be reconfigured (as via bmm150_devinit()).
dev | The device context. |
power | True to enable the bit, false otherwise. |
upm_result_t bmm150_set_opmode | ( | const bmm150_context | dev, |
BMM150_OPERATION_MODE_T | opmode | ||
) |
Set the operating mode of the device. See the datasheet for details.
dev | The device context. |
power | One of the BMM150_POWER_MODE_T values. |
BMM150_OPERATION_MODE_T bmm150_get_opmode | ( | const bmm150_context | dev | ) |
Get the current operating mode of the device. See the datasheet for details. The power bit must be one for this method to succeed.
dev | The device context. |
uint8_t bmm150_get_interrupt_enable | ( | const bmm150_context | dev | ) |
Return the Interrupt Enables register. This register allows you to enable various interrupt conditions. See the datasheet for details.
dev | The device context. |
upm_result_t bmm150_set_interrupt_enable | ( | const bmm150_context | dev, |
uint8_t | bits | ||
) |
Set the Interrupt Enables register. See the datasheet for details.
dev | The device context. |
bits | A bitmask of BMM150_INT_EN_BITS_T bits. |
uint8_t bmm150_get_interrupt_config | ( | const bmm150_context | dev | ) |
Return the Interrupt Config register. This register allows determining the electrical characteristics of the 2 interrupt pins (open-drain/push-pull and level/edge triggering) as well as other options. See the datasheet for details.
dev | The device context. |
upm_result_t bmm150_set_interrupt_config | ( | const bmm150_context | dev, |
uint8_t | bits | ||
) |
Set the Interrupt Config register. This register allows determining the electrical characteristics of the 2 interrupt pins (open-drain/push-pull and level/edge triggering). See the datasheet for details.
dev | The device context. |
bits | A bitmask of BMM150_INT_CONFIG_BITS_T bits. |
uint8_t bmm150_get_interrupt_status | ( | const bmm150_context | dev | ) |
Return the interrupt status register. This register indicates which interrupts have been triggered. See the datasheet for details.
dev | The device context. |
upm_result_t bmm150_set_repetitions_xy | ( | const bmm150_context | dev, |
uint8_t | reps | ||
) |
Set the repetition counter for the X and Y axes. This allows the device to average a number of measurements for a more stable output. See the datasheet for details.
dev | The device context. |
reps | A coefficient for specifying the number of repititions to perform. (1 + 2(reps)) |
upm_result_t bmm150_set_repetitions_z | ( | const bmm150_context | dev, |
uint8_t | reps | ||
) |
Set the repetition counter for the Z axis. This allows the device to average a number of measurements for a more stable output. See the datasheet for details.
dev | The device context. |
reps | A coefficient for specifying the number of repititions to perform. (1 + (reps)) |
upm_result_t bmm150_install_isr | ( | const bmm150_context | dev, |
BMM150_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 BMM150_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 the 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 bmm150_uninstall_isr | ( | const bmm150_context | dev, |
BMM150_INTERRUPT_PINS_T | intr | ||
) |
Uninstall a previously installed interrupt handler.
dev | The device context. |
intr | One of the BMM150_INTERRUPT_PINS_T values specifying which interrupt pin you are removing. |
uint8_t bmm150_read_reg | ( | const bmm150_context | dev, |
uint8_t | reg | ||
) |
Read a register.
dev | The device context. |
reg | The register to read. |
int bmm150_read_regs | ( | const bmm150_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 bmm150_write_reg | ( | const bmm150_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 _bmm150_context * bmm150_context |
Device context