39#ifdef PREINIT_SUPPORTED
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51#include "drv_i2c_master.h"
52#include "drv_spi_master.h"
75#define ACCEL21_REG_STATUS_AUX 0x07
76#define ACCEL21_REG_OUT_TEMP_L 0x0C
77#define ACCEL21_REG_OUT_TEMP_H 0x0D
78#define ACCEL21_REG_INT_COUNTER 0x0E
79#define ACCEL21_REG_WHO_AM_I 0x0F
80#define ACCEL21_REG_TEMP_CFG 0x1F
81#define ACCEL21_REG_CTRL_REG1 0x20
82#define ACCEL21_REG_CTRL_REG2 0x21
83#define ACCEL21_REG_CTRL_REG3 0x22
84#define ACCEL21_REG_CTRL_REG4 0x23
85#define ACCEL21_REG_CTRL_REG5 0x24
86#define ACCEL21_REG_CTRL_REG6 0x25
87#define ACCEL21_REG_REFERENCE_DATACAPTURE 0x26
88#define ACCEL21_REG_STATUS 0x27
89#define ACCEL21_REG_OUT_X_L 0x28
90#define ACCEL21_REG_OUT_X_H 0x29
91#define ACCEL21_REG_OUT_Y_L 0x2A
92#define ACCEL21_REG_OUT_Y_H 0x2B
93#define ACCEL21_REG_OUT_Z_L 0x2C
94#define ACCEL21_REG_OUT_Z_H 0x2D
95#define ACCEL21_REG_FIFO_CTRL 0x2E
96#define ACCEL21_REG_FIFO_SRC 0x2F
97#define ACCEL21_REG_INT1_CFG 0x30
98#define ACCEL21_REG_INT1_SRC 0x31
99#define ACCEL21_REG_INT1_THS 0x32
100#define ACCEL21_REG_INT1_DURATION 0x33
101#define ACCEL21_REG_INT2_CFG 0x34
102#define ACCEL21_REG_INT2_SRC 0x35
103#define ACCEL21_REG_INT2_THS 0x36
104#define ACCEL21_REG_INT2_DURATION 0x37
105#define ACCEL21_REG_CLICK_CFG 0x38
106#define ACCEL21_REG_CLICK_SRC 0x39
107#define ACCEL21_REG_CLICK_THS 0x3A
108#define ACCEL21_REG_TIME_LIMIT 0x3B
109#define ACCEL21_REG_TIME_LATENCY 0x3C
110#define ACCEL21_REG_ACT_THS 0x3E
111#define ACCEL21_REG_ACT_DUR 0x3F
129#define ACCEL21_STATUS_AUX_TDA_BIT_MASK 0x04
130#define ACCEL21_STATUS_AUX_TOR_BIT_MASK 0x40
132#define ACCEL21_TEMP_CFG_TEMP_EN_BIT_MASK 0xC0
134#define ACCEL21_WHO_AM_I 0x33
136#define ACCEL21_OP_MODE_NORMAL 0x00
137#define ACCEL21_OP_MODE_HIGH_RESOLUTION 0x01
138#define ACCEL21_OP_MODE_LOW_POWER 0x02
139#define ACCEL21_OP_MODE_NOT_ALLOWED 0x02
140#define ACCEL21_CTRL_OP_MODE_BIT_MASK 0x08
142#define ACCEL21_STATUS_NEW_DATA_AVL_BIT_MASK 0x08
143#define ACCEL21_STATUS_DATA_OVERRUN_BIT_MASK 0x80
145#define ACCEL21_CTRL_REG1_ODR_PWR_DOWN_MODE 0x00
146#define ACCEL21_CTRL_REG1_ODR_1_Hz 0x01
147#define ACCEL21_CTRL_REG1_ODR_10_Hz 0x02
148#define ACCEL21_CTRL_REG1_ODR_25_Hz 0x03
149#define ACCEL21_CTRL_REG1_ODR_50_Hz 0x04
150#define ACCEL21_CTRL_REG1_ODR_100_Hz 0x05
151#define ACCEL21_CTRL_REG1_ODR_200_Hz 0x06
152#define ACCEL21_CTRL_REG1_ODR_400_Hz 0x07
153#define ACCEL21_CTRL_REG1_ODR_1_62_kHz 0x08
154#define ACCEL21_CTRL_REG1_ODR_1_344_kHz 0x09
155#define ACCEL21_CTRL_REG1_ODR_BIT_MASK 0xF0
157#define ACCEL21_CTRL_REG1_LPEN_DISABLE 0x00
158#define ACCEL21_CTRL_REG1_LPEN_ENABLE 0x01
159#define ACCEL21_CTRL_REG1_LPEN_BIT_MASK 0x08
161#define ACCEL21_CTRL_REG1_XYZEN_DISABLE 0x00
162#define ACCEL21_CTRL_REG1_XYZEN_ENABLE 0x01
163#define ACCEL21_CTRL_REG1_ZEN_BIT_MASK 0x04
164#define ACCEL21_CTRL_REG1_YEN_BIT_MASK 0x02
165#define ACCEL21_CTRL_REG1_XEN_BIT_MASK 0x01
167#define ACCEL21_CTRL_REG4_BDU_CONTIN_UPDATE 0x00
168#define ACCEL21_CTRL_REG4_BDU_NOT_UPDATE 0x01
169#define ACCEL21_CTRL_REG4_BDU_BIT_MASK 0x80
171#define ACCEL21_CTRL_REG4_FS_2_g 0x00
172#define ACCEL21_CTRL_REG4_FS_4_g 0x01
173#define ACCEL21_CTRL_REG4_FS_10_g 0x02
174#define ACCEL21_CTRL_REG4_FS_16_g 0x03
175#define ACCEL21_CTRL_REG4_FS_BIT_MASK 0x30
177#define ACCEL21_CTRL_REG4_HR_DISABLE 0x00
178#define ACCEL21_CTRL_REG4_HR_ENABLE 0x01
179#define ACCEL21_CTRL_REG1_HR_BIT_MASK 0x08
186#define ACCEL21_DEVICE_ADDRESS_GND 0x18
187#define ACCEL21_DEVICE_ADDRESS_VCC 0x19
197#define ACCEL21_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
198#define ACCEL21_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
216#define ACCEL21_MAP_MIKROBUS( cfg, mikrobus ) \
217 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
218 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
219 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
220 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
221 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
222 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
223 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
224 cfg.in1 = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
225 cfg.in2 = MIKROBUS( mikrobus, MIKROBUS_INT )
216#define ACCEL21_MAP_MIKROBUS( cfg, mikrobus ) \ …
accel21_drv_t
Accel 21 Click driver selector.
Definition accel21.h:235
@ ACCEL21_DRV_SEL_SPI
Definition accel21.h:236
@ ACCEL21_DRV_SEL_I2C
Definition accel21.h:237
err_t(* accel21_master_io_t)(struct accel21_s *, uint8_t, uint8_t *, uint8_t)
Accel 21 Click driver interface.
Definition accel21.h:245
struct accel21_s accel21_t
Accel 21 Click context object.
accel21_return_value_t
Accel 21 Click return value data.
Definition accel21.h:302
@ ACCEL21_OK
Definition accel21.h:303
@ ACCEL21_ERROR
Definition accel21.h:304
err_t accel21_get_temp_status(accel21_t *ctx, uint8_t *temp_status)
Accel 21 get temperature status function.
err_t accel21_get_device_id(accel21_t *ctx, uint8_t *device_id)
Accel 21 get device ID function.
err_t accel21_generic_write(accel21_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Accel 21 data writing function.
err_t accel21_get_axis(accel21_t *ctx, accel21_axis_t *acc_axis)
Accel 21 get accel data function.
err_t accel21_check_temp_data_ovr(accel21_t *ctx, uint8_t *temp_data_ovr)
Accel 21 check temperature overrun function.
err_t accel21_check_id(accel21_t *ctx)
Accel 21 check device ID function.
err_t accel21_get_op_mode(accel21_t *ctx, uint8_t *op_mode)
Accel 21 get operating mode function.
uint8_t accel21_get_in2_pin(accel21_t *ctx)
Accel 21 get interrupt 2 function.
err_t accel21_enable_temp_data(accel21_t *ctx)
Accel 21 enable temperature data function.
err_t accel21_init(accel21_t *ctx, accel21_cfg_t *cfg)
Accel 21 initialization function.
err_t accel21_check_data_overrun(accel21_t *ctx, uint8_t *data_overrun)
Accel 21 check accel overrun function.
err_t accel21_set_op_mode(accel21_t *ctx, uint8_t op_mode)
Accel 21 set operating mode function.
void accel21_cfg_setup(accel21_cfg_t *cfg)
Accel 21 configuration object setup function.
err_t accel21_get_status(accel21_t *ctx, uint8_t *status)
Accel 21 get status function.
err_t accel21_generic_read(accel21_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Accel 21 data reading function.
err_t accel21_default_cfg(accel21_t *ctx)
Accel 21 default configuration function.
void accel21_drv_interface_selection(accel21_cfg_t *cfg, accel21_drv_t drv_sel)
Accel 21 driver interface setup function.
err_t accel21_set_config(accel21_t *ctx, accel21_config_t config)
Accel 21 set config function.
err_t accel21_check_temp_data_ready(accel21_t *ctx, uint8_t *temp_data_ready)
Accel 21 check temperature data ready function.
err_t accel21_get_temp_data(accel21_t *ctx, int16_t *temp_data)
Accel 21 get temperature data function.
uint8_t accel21_get_in1_pin(accel21_t *ctx)
Accel 21 get interrupt 1 function.
err_t accel21_get_temperature(accel21_t *ctx, float *temperature)
Accel 21 get temperature function.
err_t accel21_check_new_data(accel21_t *ctx, uint8_t *new_data_avl)
Accel 21 check accel data ready function.
This file contains SPI specific macros, functions, etc.
Accel 21 Click Axis structure object.
Definition accel21.h:313
int16_t z
Definition accel21.h:316
int16_t x
Definition accel21.h:314
int16_t y
Definition accel21.h:315
Accel 21 Click configuration object.
Definition accel21.h:275
uint32_t i2c_speed
Definition accel21.h:286
spi_master_chip_select_polarity_t cs_polarity
Definition accel21.h:291
pin_name_t in2
Definition accel21.h:284
pin_name_t sck
Definition accel21.h:280
spi_master_mode_t spi_mode
Definition accel21.h:290
pin_name_t mosi
Definition accel21.h:279
uint32_t spi_speed
Definition accel21.h:289
pin_name_t scl
Definition accel21.h:276
pin_name_t in1
Definition accel21.h:283
pin_name_t miso
Definition accel21.h:278
pin_name_t sda
Definition accel21.h:277
accel21_drv_t drv_sel
Definition accel21.h:293
pin_name_t rst
Definition accel21.h:282
pin_name_t cs
Definition accel21.h:281
uint8_t i2c_address
Definition accel21.h:287
Accel 21 Click configuration structure object.
Definition accel21.h:325
uint8_t bdu
Definition accel21.h:331
uint8_t yen
Definition accel21.h:329
uint8_t zen
Definition accel21.h:328
uint8_t xen
Definition accel21.h:330
uint8_t fs
Definition accel21.h:332
uint8_t lpen
Definition accel21.h:327
uint8_t odr
Definition accel21.h:326
uint8_t hr
Definition accel21.h:333
Accel 21 Click context object.
Definition accel21.h:252
digital_in_t in2
Definition accel21.h:256
spi_master_t spi
Definition accel21.h:259
digital_in_t in1
Definition accel21.h:255
accel21_master_io_t write_f
Definition accel21.h:265
i2c_master_t i2c
Definition accel21.h:258
accel21_master_io_t read_f
Definition accel21.h:266
digital_out_t rst
Definition accel21.h:253
uint8_t slave_address
Definition accel21.h:261
pin_name_t chip_select
Definition accel21.h:262
accel21_drv_t drv_sel
Definition accel21.h:263