The friendly Operating System for the Internet of Things

Interface definition for the MAG3110 magnetometer driver. More...

Detailed Description

Author
Johann Fischer j.fis.nosp@m.cher.nosp@m.@phyt.nosp@m.ec.d.nosp@m.e

Definition in file mag3110.h.

#include <stdint.h>
#include <stdbool.h>
#include "periph/i2c.h"
+ Include dependency graph for mag3110.h:

Go to the source code of this file.

Data Structures

struct  mag3110_t
 Device descriptor for MAG3110 magnetometer. More...
 

Macros

#define MAG3110_I2C_ADDRESS   0x0E
 Magnetometer Default Address.
 
#define MAG3110_DROS_8000_16   0
 Output Rate 80 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_4000_32   1
 Output Rate 40 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_2000_64   2
 Output Rate 20 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_1000_128   3
 Output Rate 10 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_4000_16   4
 Output Rate 40 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_2000_32   5
 Output Rate 20 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_1000_64   6
 Output Rate 10 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_0500_128   7
 Output Rate 5 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_2000_16   8
 Output Rate 20 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_1000_32   9
 Output Rate 10 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_0500_64   10
 Output Rate 5 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_0250_128   11
 Output Rate 2.5 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_1000_16   12
 Output Rate 10 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_0500_32   13
 Output Rate 5 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_0250_64   14
 Output Rate 2.5 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_0125_128   15
 Output Rate 1.25 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_0500_16   16
 Output Rate 5 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_0250_32   17
 Output Rate 2.5 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_0125_64   18
 Output Rate 1.25 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_0063_128   19
 Output Rate 0.63 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_0250_16   20
 Output Rate 2.5 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_0125_32   21
 Output Rate 1.25 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_0063_64   22
 Output Rate 0.63 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_0031_128   23
 Output Rate 0.31 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_0125_16   24
 Output Rate 1.25 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_0063_32   25
 Output Rate 0.63 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_0031_64   26
 Output Rate 0.31 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_0016_128   27
 Output Rate 0.16 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_0063_16   28
 Output Rate 0.63 Hz, Over Sample Ratio 16.
 
#define MAG3110_DROS_0031_32   29
 Output Rate 0.31 Hz, Over Sample Ratio 32.
 
#define MAG3110_DROS_0016_64   30
 Output Rate 0.16 Hz, Over Sample Ratio 64.
 
#define MAG3110_DROS_0008_128   31
 Output Rate 0.08 Hz, Over Sample Ratio 128.
 
#define MAG3110_DROS_DEFAULT   MAG3110_DROS_0125_128
 Default Setting for testing.
 

Functions

int mag3110_test (mag3110_t *dev)
 MAG3110 magnetometer test. More...
 
int mag3110_init (mag3110_t *dev, i2c_t i2c, uint8_t address, uint8_t dros)
 Initialise the MAG3110 magnetometer driver. More...
 
int mag3110_set_user_offset (mag3110_t *dev, int16_t x, int16_t y, int16_t z)
 Set user offset correction. More...
 
int mag3110_set_active (mag3110_t *dev)
 Set active mode, this enables periodic measurements. More...
 
int mag3110_set_standby (mag3110_t *dev)
 Set standby mode. More...
 
int mag3110_is_ready (mag3110_t *dev)
 Check for new set of measurement data. More...
 
int mag3110_read (mag3110_t *dev, int16_t *x, int16_t *y, int16_t *z, uint8_t *status)
 Read magnetometer's data. More...
 
int mag3110_read_dtemp (mag3110_t *dev, int8_t *dtemp)
 Read die temperature. More...