objc

drivers_lsm303.h
Go to the documentation of this file.
1 
10 #pragma once
11 #include <runtime-hw/hw.h>
12 #include <stdbool.h>
13 #include <stdint.h>
14 
16 // TYPES
17 
22 typedef enum {
29 
34 typedef enum {
40 
45 typedef struct {
46  float x;
47  float y;
48  float z;
50 
55 typedef struct {
60 
62 // LIFECYCLE
63 
77 bool driver_lsm303_init(driver_lsm303_t *driver, hw_i2c_t *i2c);
78 
90  driver_lsm303_accel_scale_t accel_scale,
91  driver_lsm303_mag_scale_t mag_scale);
92 
100 
102 // DATA ACQUISITION
103 
115  driver_lsm303_vec3_t *data);
116 
128  driver_lsm303_vec3_t *data);
129 
138 bool driver_lsm303_read_temp(driver_lsm303_t *driver, float *temp);
139 
141 // UTILITY FUNCTIONS
142 
LSM303D driver instance.
driver_lsm303_mag_scale_t mag_scale
Current magnetometer scale.
float x
X-axis value.
driver_lsm303_accel_scale_t
Accelerometer full scale range.
3-axis vector data structure
void driver_lsm303_finalize(driver_lsm303_t *driver)
Finalize and power down LSM303D.
bool driver_lsm303_read_temp(driver_lsm303_t *driver, float *temp)
Read temperature.
bool driver_lsm303_init(driver_lsm303_t *driver, hw_i2c_t *i2c)
Initialize LSM303D with default settingsInitializes the sensor with:
float z
Z-axis value.
Hardware interface abstraction layer.
driver_lsm303_accel_scale_t accel_scale
Current accelerometer scale.
bool driver_lsm303_read_mag(driver_lsm303_t *driver, driver_lsm303_vec3_t *data)
Read magnetometer dataReturns magnetic field strength in gauss.
I2C adapter.
Definition: i2c.h:28
driver_lsm303_mag_scale_t
Magnetometer full scale range.
bool driver_lsm303_init_with_config(driver_lsm303_t *driver, hw_i2c_t *i2c, driver_lsm303_accel_scale_t accel_scale, driver_lsm303_mag_scale_t mag_scale)
Initialize LSM303D with custom scale settings.
float driver_lsm303_get_heading(const driver_lsm303_vec3_t *mag)
Calculate compass heading from magnetometer dataCalculates the compass heading (direction) from magne...
bool driver_lsm303_read_accel(driver_lsm303_t *driver, driver_lsm303_vec3_t *data)
Read accelerometer dataReturns acceleration in g (Earth gravity = 1g ≈ 9.81 m/s²) ...
hw_i2c_t i2c
I2C interface.
float y
Y-axis value.