Loading...
Searching...
No Matches
lis3mdl.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 HAW Hamburg
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
22
23#include <stdint.h>
24#include "periph/i2c.h"
25#include "periph/gpio.h"
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
34typedef struct {
35 int16_t x_axis;
36 int16_t y_axis;
37 int16_t z_axis;
39
49
59
72
82
91
104
108typedef struct {
110} lis3mdl_t;
111
121int lis3mdl_init(lis3mdl_t *dev, const lis3mdl_params_t *params);
122
130
137void lis3mdl_read_temp(const lis3mdl_t *dev, int16_t *value);
138
144void lis3mdl_enable(const lis3mdl_t *dev);
145
151void lis3mdl_disable(const lis3mdl_t *dev);
152
153#ifdef __cplusplus
154}
155#endif
156
Low-level GPIO peripheral driver interface definitions.
lis3mdl_odr_t
Output data rate [Hz] for LIS3MDL.
Definition lis3mdl.h:63
void lis3mdl_read_temp(const lis3mdl_t *dev, int16_t *value)
Reads the temperature value of LIS3MDL.
lis3mdl_op_t
Operating modes.
Definition lis3mdl.h:86
void lis3mdl_read_mag(const lis3mdl_t *dev, lis3mdl_3d_data_t *data)
Reads the magnometer value of LIS3MDL.
void lis3mdl_disable(const lis3mdl_t *dev)
Disable the LIS3MDL device.
void lis3mdl_enable(const lis3mdl_t *dev)
Enable the LIS3MDL device.
lis3mdl_z_mode_t
Operating mode of z-axis for LIS3MDL.
Definition lis3mdl.h:53
int lis3mdl_init(lis3mdl_t *dev, const lis3mdl_params_t *params)
Initialize a new LIS3DML device.
lis3mdl_xy_mode_t
Operating mode of x- and y-axis for LIS3MDL.
Definition lis3mdl.h:43
lis3mdl_scale_t
Scale [gauss] for LIS3MDL.
Definition lis3mdl.h:76
@ LIS3MDL_ODR_10Hz
10.000Hz
Definition lis3mdl.h:67
@ LIS3DML_ODR_20HZ
20.000Hz
Definition lis3mdl.h:68
@ LIS3MDL_ODR_2_5Hz
5.000Hz
Definition lis3mdl.h:66
@ LIS3DML_ODR_40HZ
40.000Hz
Definition lis3mdl.h:69
@ LIS3MDL_ODR_80HZ
80.000Hz
Definition lis3mdl.h:70
@ LIS3MDL_ODR_0_625Hz
0.625Hz
Definition lis3mdl.h:64
@ LIS3MDL_ODR_1_25Hz
1.250Hz
Definition lis3mdl.h:65
@ LIS3MDL_OP_CONT_CONV
Continous-conversion mode.
Definition lis3mdl.h:87
@ LIS3MDL_OP_SNGL_CONV
Single-conversion mode.
Definition lis3mdl.h:88
@ LIS3MDL_OP_PDOWN
Power-down mode.
Definition lis3mdl.h:89
@ LIS3MDL_Z_MODE_ULTRA
Ultra-High-performance mode.
Definition lis3mdl.h:57
@ LIS3MDL_Z_MODE_HIGH
High-performance mode.
Definition lis3mdl.h:56
@ LIS3MDL_Z_MODE_MEDIUM
Medium-performance mode.
Definition lis3mdl.h:55
@ LIS3MDL_Z_MODE_LOW
Low-power mode.
Definition lis3mdl.h:54
@ LIS3MDL_XY_MODE_HIGH
High-performance mode.
Definition lis3mdl.h:46
@ LIS3MDL_XY_MODE_ULTRA
Ultra-High-performance mode.
Definition lis3mdl.h:47
@ LIS3MDL_XY_MODE_LOW
Low-power mode.
Definition lis3mdl.h:44
@ LIS3MDL_XY_MODE_MEDIUM
Medium-performance mode.
Definition lis3mdl.h:45
@ LIS3MDL_SCALE_8G
+- 8 gauss
Definition lis3mdl.h:78
@ LIS3MDL_SCALE_12G
+- 12 gauss
Definition lis3mdl.h:79
@ LIS3MDL_SCALE_4G
+- 4 gauss
Definition lis3mdl.h:77
@ LIS3MDL_SCALE_16G
+- 16 gauss
Definition lis3mdl.h:80
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition i2c.h:155
Low-level I2C peripheral driver interface definition.
3d data container of the LIS3MDL sensor
Definition lis3mdl.h:34
int16_t y_axis
Magnometer data from y_axis.
Definition lis3mdl.h:36
int16_t z_axis
Magnometer data from z_axis.
Definition lis3mdl.h:37
int16_t x_axis
Magnometer data from x-axis.
Definition lis3mdl.h:35
Device initialization parameters.
Definition lis3mdl.h:95
lis3mdl_odr_t odr
Output data rate.
Definition lis3mdl.h:100
lis3mdl_scale_t scale
Scale factor.
Definition lis3mdl.h:101
uint8_t addr
Magnometer I2C address.
Definition lis3mdl.h:97
lis3mdl_z_mode_t z_mode
Power mode of z-axis.
Definition lis3mdl.h:99
lis3mdl_op_t op_mode
Operation mode.
Definition lis3mdl.h:102
i2c_t i2c
I2C device.
Definition lis3mdl.h:96
lis3mdl_xy_mode_t xy_mode
Power mode of x- and y-axis.
Definition lis3mdl.h:98
Device descriptor for LIS3MDL sensor.
Definition lis3mdl.h:108
lis3mdl_params_t params
Initialization parameters.
Definition lis3mdl.h:109