Loading...
Searching...
No Matches
bmx055.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Freie Universität Berlin
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
24
25#include <stdint.h>
26
27#include "periph/i2c.h"
28#include "periph/gpio.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
46#ifndef CONFIG_BMX055_MAG_ADDR_DEFAULT
47#define CONFIG_BMX055_MAG_ADDR_DEFAULT (0x10U)
48#endif
49
57#ifndef CONFIG_BMX055_ACC_ADDR_DEFAULT
58#define CONFIG_BMX055_ACC_ADDR_DEFAULT (0x18U)
59#endif
60
68#ifndef CONFIG_BMX055_GYRO_ADDR_DEFAULT
69#define CONFIG_BMX055_GYRO_ADDR_DEFAULT (0x68U)
70#endif
72
76enum {
83};
84
98
108
119
123typedef struct {
125 uint8_t addr_mag;
126 uint8_t addr_acc;
127 uint8_t addr_gyro;
128 gpio_t int1_pin;
129 gpio_t int2_pin;
130 uint8_t mag_rate;
131 uint8_t acc_range;
132 uint8_t gyro_scale;
134
138typedef struct {
140} bmx055_t;
141
153int bmx055_init(bmx055_t *dev, const bmx055_params_t *params);
154
165int bmx055_mag_read(const bmx055_t *dev, int16_t *data);
166
177int bmx055_acc_read(const bmx055_t *dev, int16_t *data);
178
192int bmx055_gyro_read(const bmx055_t *dev, int16_t *data);
193
194#ifdef __cplusplus
195}
196#endif
197
Low-level GPIO peripheral driver interface definitions.
int bmx055_gyro_read(const bmx055_t *dev, int16_t *data)
Read angular speed value in degree per second from gyroscope.
bmx055_gyro_scale_t
Measurement scale for the gyro.
Definition bmx055.h:112
bmx055_acc_range_t
Range for Accelerometer.
Definition bmx055.h:102
int bmx055_acc_read(const bmx055_t *dev, int16_t *data)
Read acceleration value in g from accelerometer.
int bmx055_init(bmx055_t *dev, const bmx055_params_t *params)
Initialize modules magnetometer, accelerometer, gyroscope.
bmx055_mag_rate_t
Datarate for Magnetometer.
Definition bmx055.h:88
int bmx055_mag_read(const bmx055_t *dev, int16_t *data)
Read magnetic field value in Gauss per second from magnetometer.
@ BMX055_GYRO_SCALE_0125DPS
scale: 125 degree per second
Definition bmx055.h:117
@ BMX055_GYRO_SCALE_0250DPS
scale: 250 degree per second
Definition bmx055.h:116
@ BMX055_GYRO_SCALE_1000DPS
scale: 1000 degree per second
Definition bmx055.h:114
@ BMX055_GYRO_SCALE_0500DPS
scale: 500 degree per second
Definition bmx055.h:115
@ BMX055_GYRO_SCALE_2000DPS
scale: 2000 degree per second
Definition bmx055.h:113
@ BMX055_ACC_RANGE_4G
range: 4g
Definition bmx055.h:104
@ BMX055_ACC_RANGE_2G
range: 2g
Definition bmx055.h:103
@ BMX055_ACC_RANGE_8G
range: 8g
Definition bmx055.h:105
@ BMX055_ACC_RANGE_16G
range: 16g
Definition bmx055.h:106
@ BMX055_MAG_DRATE_30HZ
output data rate: 30 Hz
Definition bmx055.h:96
@ BMX055_MAG_DRATE_25HZ
output data rate: 25 Hz
Definition bmx055.h:95
@ BMX055_MAG_DRATE_15HZ
output data rate: 15 Hz
Definition bmx055.h:93
@ BMX055_MAG_DRATE_DEFAULT
output data rate: 10 Hz
Definition bmx055.h:89
@ BMX055_MAG_DRATE_02HZ
output data rate: 2 Hz
Definition bmx055.h:90
@ BMX055_MAG_DRATE_06HZ
output data rate: 6 Hz
Definition bmx055.h:91
@ BMX055_MAG_DRATE_08HZ
output data rate: 8 Hz
Definition bmx055.h:92
@ BMX055_MAG_DRATE_20HZ
output data rate: 20 Hz
Definition bmx055.h:94
@ BMX055_NOWRITE
cannot write data to module
Definition bmx055.h:81
@ BMX055_NOBUS
cannot connect to module on i2c bus
Definition bmx055.h:78
@ BMX055_OK
exit without error
Definition bmx055.h:77
@ BMX055_NOTREADY
no new data ready for reading
Definition bmx055.h:82
@ BMX055_NOREAD
cannot read data from module
Definition bmx055.h:80
@ BMX055_NODEV
cannot read any data from module
Definition bmx055.h:79
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition i2c.h:155
Low-level I2C peripheral driver interface definition.
Data structure holding the device parameters needed for initialization.
Definition bmx055.h:123
uint8_t mag_rate
datarate of magnetometer
Definition bmx055.h:130
uint8_t addr_acc
the accelerometer address on that bus
Definition bmx055.h:126
uint8_t gyro_scale
range of gyroscope
Definition bmx055.h:132
gpio_t int1_pin
GPIO pin connected to the INT1 line.
Definition bmx055.h:128
uint8_t acc_range
range of accelerometer
Definition bmx055.h:131
uint8_t addr_mag
the magnetometer address on that bus
Definition bmx055.h:125
uint8_t addr_gyro
the gyroscope address on that bus
Definition bmx055.h:127
gpio_t int2_pin
GPIO pin connected to the INT2 line.
Definition bmx055.h:129
i2c_t i2c
I2C bus the device is connected to.
Definition bmx055.h:124
Device descriptor for BMX055 sensors.
Definition bmx055.h:138
bmx055_params_t p
Device initialization parameters.
Definition bmx055.h:139