35#include "drv_digital_out.h"
36#include "drv_digital_in.h"
37#include "drv_i2c_master.h"
59#define ACCEL25_REG_INT_SRC0 0x00
60#define ACCEL25_REG_INT_CLR0 0x00
61#define ACCEL25_REG_INT_SRC1 0x01
62#define ACCEL25_REG_INT_CLR1 0x01
63#define ACCEL25_REG_STATUS 0x02
64#define ACCEL25_REG_XOUT_MSB 0x03
65#define ACCEL25_REG_XOUT_LSB 0x04
66#define ACCEL25_REG_YOUT_MSB 0x05
67#define ACCEL25_REG_YOUT_LSB 0x06
68#define ACCEL25_REG_ZOUT_MSB 0x07
69#define ACCEL25_REG_ZOUT_LSB 0x08
70#define ACCEL25_REG_TOUT 0x09
71#define ACCEL25_REG_INT_MASK0 0x0A
72#define ACCEL25_REG_INT_MASK1 0x0B
73#define ACCEL25_REG_DETECTION 0x0C
74#define ACCEL25_REG_CONTROL 0x0D
75#define ACCEL25_REG_DEVICE_ID 0x0E
76#define ACCEL25_REG_WHO_AM_I 0x0F
98#define ACCEL25_INT_SRC0_CHORZ 0x80
99#define ACCEL25_INT_SRC0_CHORXY 0x40
100#define ACCEL25_INT_SRC0_SHYM 0x08
101#define ACCEL25_INT_SRC0_SHYP 0x04
102#define ACCEL25_INT_SRC0_SHXM 0x02
103#define ACCEL25_INT_SRC0_SHXP 0x01
109#define ACCEL25_INT_CLR0_ORZC 0x80
110#define ACCEL25_INT_CLR0_ORXYC 0x40
111#define ACCEL25_INT_CLR0_SHYMC 0x08
112#define ACCEL25_INT_CLR0_SHYPC 0x04
113#define ACCEL25_INT_CLR0_SHXMC 0x02
114#define ACCEL25_INT_CLR0_SHXPC 0x01
115#define ACCEL25_INT_CLR0_ALL 0xCF
121#define ACCEL25_INT_SRC1_TILT 0x80
122#define ACCEL25_INT_SRC1_ORZ 0x40
123#define ACCEL25_INT_SRC1_ORXY_X_PLUS 0x00
124#define ACCEL25_INT_SRC1_ORXY_Y_PLUS 0x10
125#define ACCEL25_INT_SRC1_ORXY_X_MINUS 0x20
126#define ACCEL25_INT_SRC1_ORXY_Y_MINUS 0x30
127#define ACCEL25_INT_SRC1_ORXY_MASK 0x30
128#define ACCEL25_INT_SRC1_DRDY 0x01
134#define ACCEL25_INT_CLR1_SW_RST 0x10
135#define ACCEL25_INT_CLR1_DRDYC 0x01
141#define ACCEL25_STATUS_ORD 0x10
142#define ACCEL25_STATUS_ORIZ_MSB 0x08
143#define ACCEL25_STATUS_ORIZ_LSB 0x04
144#define ACCEL25_STATUS_ORIXY_MSB 0x02
145#define ACCEL25_STATUS_ORIXY_LSB 0x01
151#define ACCEL25_INT_MASK0_ORZE 0x80
152#define ACCEL25_INT_MASK0_ORXYE 0x40
153#define ACCEL25_INT_MASK0_SHYME 0x08
154#define ACCEL25_INT_MASK0_SHYPE 0x04
155#define ACCEL25_INT_MASK0_SHXME 0x02
156#define ACCEL25_INT_MASK0_SHXPE 0x01
157#define ACCEL25_INT_MASK0_NONE 0x00
158#define ACCEL25_INT_MASK0_ALL 0xCF
164#define ACCEL25_INT_MASK1_DRDYE 0x01
170#define ACCEL25_DETECTION_SHM 0x80
171#define ACCEL25_DETECTION_SHTH_0p25G 0x00
172#define ACCEL25_DETECTION_SHTH_0p5G 0x10
173#define ACCEL25_DETECTION_SHTH_0p75G 0x20
174#define ACCEL25_DETECTION_SHTH_1G 0x30
175#define ACCEL25_DETECTION_SHTH_1p25G 0x40
176#define ACCEL25_DETECTION_SHTH_1p5G 0x50
177#define ACCEL25_DETECTION_SHTH_1p75G 0x60
178#define ACCEL25_DETECTION_SHTH_2G 0x70
179#define ACCEL25_DETECTION_SHTH_MASK 0x70
180#define ACCEL25_DETECTION_SHC_8 0x00
181#define ACCEL25_DETECTION_SHC_16 0x04
182#define ACCEL25_DETECTION_SHC_32 0x08
183#define ACCEL25_DETECTION_SHC_64 0x0C
184#define ACCEL25_DETECTION_SHC_MASK 0x0C
185#define ACCEL25_DETECTION_ORC_16 0x00
186#define ACCEL25_DETECTION_ORC_32 0x01
187#define ACCEL25_DETECTION_ORC_64 0x02
188#define ACCEL25_DETECTION_ORC_128 0x03
189#define ACCEL25_DETECTION_ORC_MASK 0x03
190#define ACCEL25_DETECTION_NONE 0x00
196#define ACCEL25_CONTROL_FSR_2G 0x00
197#define ACCEL25_CONTROL_FSR_4G 0x20
198#define ACCEL25_CONTROL_FSR_8G 0x40
199#define ACCEL25_CONTROL_FSR_UNDEFINED 0x60
200#define ACCEL25_CONTROL_FSR_MASK 0x60
201#define ACCEL25_CONTROL_PD 0x01
207#define ACCEL25_ACCEL_RESOLUTION 2048.0f
208#define ACCEL25_TEMP_SENSITIVITY 0.586f
209#define ACCEL25_TEMP_NOMINAL 25.0f
215#define ACCEL25_FSR_2G 0
216#define ACCEL25_FSR_4G 1
217#define ACCEL25_FSR_8G 2
223#define ACCEL25_DEVICE_ID 0x02
229#define ACCEL25_PIN_STATE_LOW 0x00
230#define ACCEL25_PIN_STATE_HIGH 0x01
237#define ACCEL25_DEVICE_ADDRESS 0x15
255#define ACCEL25_MAP_MIKROBUS( cfg, mikrobus ) \
256 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
257 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
258 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
accel25_return_value_t
Accel 25 Click return value data.
Definition: accel25.h:316
@ ACCEL25_ERROR
Definition: accel25.h:318
@ ACCEL25_OK
Definition: accel25.h:317
err_t accel25_set_full_scale_range(accel25_t *ctx, uint8_t fsr)
Accel 25 set full scale range function.
err_t accel25_read_data(accel25_t *ctx, accel25_data_t *data_out)
Accel 25 read data function.
void accel25_cfg_setup(accel25_cfg_t *cfg)
Accel 25 configuration object setup function.
err_t accel25_default_cfg(accel25_t *ctx)
Accel 25 default configuration function.
err_t accel25_generic_read(accel25_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Accel 25 I2C reading function.
err_t accel25_generic_write(accel25_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Accel 25 I2C writing function.
uint8_t accel25_get_int_pin(accel25_t *ctx)
Accel 25 get int pin function.
err_t accel25_write_register(accel25_t *ctx, uint8_t reg, uint8_t data_in)
Accel 25 write register function.
err_t accel25_check_communication(accel25_t *ctx)
Accel 25 check communication function.
err_t accel25_read_register(accel25_t *ctx, uint8_t reg, uint8_t *data_out)
Accel 25 read register function.
err_t accel25_init(accel25_t *ctx, accel25_cfg_t *cfg)
Accel 25 initialization function.
err_t accel25_soft_reset(accel25_t *ctx)
Accel 25 soft reset function.
Accel 25 Click configuration object.
Definition: accel25.h:287
uint32_t i2c_speed
Definition: accel25.h:293
pin_name_t scl
Definition: accel25.h:288
pin_name_t int_pin
Definition: accel25.h:291
pin_name_t sda
Definition: accel25.h:289
uint8_t i2c_address
Definition: accel25.h:294
Accel 25 Click data structure.
Definition: accel25.h:303
float y
Definition: accel25.h:305
float x
Definition: accel25.h:304
float z
Definition: accel25.h:306
float temperature
Definition: accel25.h:307
Accel 25 Click context object.
Definition: accel25.h:268
digital_in_t int_pin
Definition: accel25.h:270
i2c_master_t i2c
Definition: accel25.h:273
uint8_t fsr_sens
Definition: accel25.h:278
uint8_t slave_address
Definition: accel25.h:276