35#include "mikrosdk_version.h"
38#if mikroSDK_GET_VERSION < 20800ul
39#include "rcu_delays.h"
45#include "drv_digital_out.h"
46#include "drv_digital_in.h"
47#include "drv_i2c_master.h"
69#define MAGACCEL_REG_INT_STATUS 0x00
70#define MAGACCEL_REG_TEMP_OUT 0x01
71#define MAGACCEL_REG_VECM_LSB 0x02
72#define MAGACCEL_REG_VECM_MSB 0x03
73#define MAGACCEL_REG_OUT_X_LSB 0x04
74#define MAGACCEL_REG_OUT_X_MSB 0x05
75#define MAGACCEL_REG_OUT_Y_LSB 0x06
76#define MAGACCEL_REG_OUT_Y_MSB 0x07
77#define MAGACCEL_REG_OUT_Z_LSB 0x08
78#define MAGACCEL_REG_OUT_Z_MSB 0x09
79#define MAGACCEL_REG_BUF_STATUS 0x0B
80#define MAGACCEL_REG_BUF_X_LSB 0x0C
81#define MAGACCEL_REG_BUF_X_MSB 0x0D
82#define MAGACCEL_REG_BUF_Y_LSB 0x0E
83#define MAGACCEL_REG_BUF_Y_MSB 0x0F
84#define MAGACCEL_REG_BUF_Z_LSB 0x10
85#define MAGACCEL_REG_BUF_Z_MSB 0x11
86#define MAGACCEL_REG_PROD_REV 0x12
87#define MAGACCEL_REG_WHO_AM_I 0x13
88#define MAGACCEL_REG_SYS_MODE 0x14
89#define MAGACCEL_REG_SENS_CONFIG1 0x15
90#define MAGACCEL_REG_SENS_CONFIG2 0x16
91#define MAGACCEL_REG_SENS_CONFIG3 0x17
92#define MAGACCEL_REG_SENS_CONFIG4 0x18
93#define MAGACCEL_REG_SENS_CONFIG5 0x19
94#define MAGACCEL_REG_WAKE_IDLE_LSB 0x1A
95#define MAGACCEL_REG_WAKE_IDLE_MSB 0x1B
96#define MAGACCEL_REG_SLEEP_IDLE_LSB 0x1C
97#define MAGACCEL_REG_SLEEP_IDLE_MSB 0x1D
98#define MAGACCEL_REG_ASLP_COUNT_LSB 0x1E
99#define MAGACCEL_REG_ASLP_COUNT_MSB 0x1F
100#define MAGACCEL_REG_INT_EN 0x20
101#define MAGACCEL_REG_INT_PIN_SEL 0x21
102#define MAGACCEL_REG_OFF_X 0x22
103#define MAGACCEL_REG_OFF_Y 0x23
104#define MAGACCEL_REG_OFF_Z 0x24
105#define MAGACCEL_REG_BUF_CONFIG1 0x26
106#define MAGACCEL_REG_BUF_CONFIG2 0x27
107#define MAGACCEL_REG_ORIENT_STATUS 0x28
108#define MAGACCEL_REG_ORIENT_CONFIG 0x29
109#define MAGACCEL_REG_ORIENT_DBCOUNT 0x2A
110#define MAGACCEL_REG_ORIENT_BF_ZCOMP 0x2B
111#define MAGACCEL_REG_ORIENT_THS_REG 0x2C
112#define MAGACCEL_REG_SDCD_INT_SRC1 0x2D
113#define MAGACCEL_REG_SDCD_INT_SRC2 0x2E
114#define MAGACCEL_REG_SDCD_CONFIG1 0x2F
115#define MAGACCEL_REG_SDCD_CONFIG2 0x30
116#define MAGACCEL_REG_SDCD_OT_DBCNT 0x31
117#define MAGACCEL_REG_SDCD_WT_DBCNT 0x32
118#define MAGACCEL_REG_SDCD_LTHS_LSB 0x33
119#define MAGACCEL_REG_SDCD_LTHS_MSB 0x34
120#define MAGACCEL_REG_SDCD_UTHS_LSB 0x35
121#define MAGACCEL_REG_SDCD_UTHS_MSB 0x36
122#define MAGACCEL_REG_SELF_TEST_CONFIG1 0x37
123#define MAGACCEL_REG_SELF_TEST_CONFIG2 0x38
141#define MAGACCEL_SRC_BOOT_COMPLETED 0x01
147#define MAGACCEL_DEVICE_ID_VAL 0x86
153#define MAGACCEL_SW_RESET_BIT_MASK 0x80
159#define MAGACCEL_OP_MODE_STANDBY 0x00
160#define MAGACCEL_OP_MODE_ACTIVE 0x01
161#define MAGACCEL_OP_MODE_BIT_MASK 0xFE
167#define MAGACCEL_FSR_SEL_2G 0x00
168#define MAGACCEL_FSR_SEL_4G 0x01
169#define MAGACCEL_FSR_SEL_8G 0x02
170#define MAGACCEL_FSR_SEL_16G 0x03
171#define MAGACCEL_FSR_SEL_BIT_MASK 0xF9
177#define MAGACCEL_INT_EN_DRDY_DIS 0x00
178#define MAGACCEL_INT_EN_DRDY_EN 0x80
184#define MAGACCEL_DATA_READY 0
185#define MAGACCEL_DET_MAG_FIELD 0
191#define MAGACCEL_FSR_SENS_VAL_2G 0.98f
192#define MAGACCEL_FSR_SENS_VAL_4G 1.95f
193#define MAGACCEL_FSR_SENS_VAL_8G 3.91f
194#define MAGACCEL_FSR_SENS_VAL_16G 7.81f
202#define MAGACCEL_DEVICE_ADDRESS 0x18
220#define MAGACCEL_MAP_MIKROBUS( cfg, mikrobus ) \
221 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
222 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
223 cfg.fld = MIKROBUS( mikrobus, MIKROBUS_AN ); \
224 cfg.mot = MIKROBUS( mikrobus, MIKROBUS_INT )
err_t magaccel_sw_reset(magaccel_t *ctx)
MagAccel soft reset function.
err_t magaccel_set_op_mode(magaccel_t *ctx, uint8_t op_mode)
MagAccel set operating mode function.
err_t magaccel_en_data_ready(magaccel_t *ctx)
MagAccel enable data ready function.
err_t magaccel_default_cfg(magaccel_t *ctx)
MagAccel default configuration function.
err_t magaccel_generic_write(magaccel_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
MagAccel I2C writing function.
err_t magaccel_generic_read(magaccel_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
MagAccel I2C reading function.
uint8_t magaccel_check_data_ready(magaccel_t *ctx)
MagAccel get data ready function.
err_t magaccel_get_status(magaccel_t *ctx, uint8_t *status)
MagAccel get status function.
void magaccel_cfg_setup(magaccel_cfg_t *cfg)
MagAccel configuration object setup function.
uint8_t magaccel_check_mag_field(magaccel_t *ctx)
MagAccel checks the magnetic field function.
err_t magaccel_init(magaccel_t *ctx, magaccel_cfg_t *cfg)
MagAccel initialization function.
err_t magaccel_set_fsr(magaccel_t *ctx, uint8_t fsr)
MagAccel set FSR function.
err_t magaccel_get_device_id(magaccel_t *ctx, uint8_t *device_id)
MagAccel get device ID function.
err_t magaccel_get_axes_data(magaccel_t *ctx, magaccel_axes_t *axes)
MagAccel get the accel sensor axes function.
magaccel_return_value_t
MagAccel Click return value data.
Definition: magaccel.h:284
@ MAGACCEL_ERROR
Definition: magaccel.h:286
@ MAGACCEL_OK
Definition: magaccel.h:285
MagAccel Click axes data.
Definition: magaccel.h:272
float y
Definition: magaccel.h:274
float x
Definition: magaccel.h:273
float z
Definition: magaccel.h:275
MagAccel Click configuration object.
Definition: magaccel.h:255
uint32_t i2c_speed
Definition: magaccel.h:262
pin_name_t fld
Definition: magaccel.h:259
pin_name_t scl
Definition: magaccel.h:256
pin_name_t sda
Definition: magaccel.h:257
pin_name_t mot
Definition: magaccel.h:260
uint8_t i2c_address
Definition: magaccel.h:263
MagAccel Click context object.
Definition: magaccel.h:234
digital_in_t fld
Definition: magaccel.h:236
i2c_master_t i2c
Definition: magaccel.h:240
digital_in_t mot
Definition: magaccel.h:237
float sensitivity
Definition: magaccel.h:246
uint8_t slave_address
Definition: magaccel.h:243