accel13 2.0.0.0
accel13.h File Reference

This file contains API for Accel 13 Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"
#include "drv_spi_master.h"

Go to the source code of this file.

Data Structures

struct  accel13_s
 Click ctx object definition. More...
 
struct  accel13_cfg_t
 Click configuration structure definition. More...
 
struct  accel13_axis_t
 Accel axis data structure. More...
 
struct  accel13_status_t
 Structure for collecting status data, read from the STATUS registers. More...
 
struct  accel13_wake_up_t
 Structure for collecting status data, read from the WAKE-UP SRC register. More...
 
struct  accel13_tap_t
 Structure for collecting status data, read from the TAP SRC register. More...
 
struct  accel13_6d_t
 Structure for collecting status data, read from the 6D SRC register. More...
 
struct  accel13_user_offset_t
 Structure for collecting data, read from the USER OFFSET registers. More...
 

Macros

#define ACCEL13_MAP_MIKROBUS(cfg, mikrobus)
 
#define ACCEL13_MASTER_I2C   0
 
#define ACCEL13_MASTER_SPI   1
 
#define ACCEL13_RETVAL   uint8_t
 
#define ACCEL13_OK   0x00
 
#define ACCEL13_INIT_ERROR   0xFF
 
#define ACCEL13_DEVICE_SLAVE_ADDR_GND   0x18
 
#define ACCEL13_DEVICE_SLAVE_ADDR_VCC   0x19
 
#define ACCEL13_REG_TEMPERATURE_DATA_LSB   0x0D
 
#define ACCEL13_REG_TEMPERATURE_DATA_MSB   0x0E
 
#define ACCEL13_REG_WHO_AM_I   0x0F
 
#define ACCEL13_REG_CTRL_1   0x20
 
#define ACCEL13_REG_CTRL_2   0x21
 
#define ACCEL13_REG_CTRL_3   0x22
 
#define ACCEL13_REG_CTRL_4_INT1   0x23
 
#define ACCEL13_REG_CTRL_5_INT2   0x24
 
#define ACCEL13_REG_CTRL_6   0x25
 
#define ACCEL13_REG_TEMPERATURE_OUTPUT   0x26
 
#define ACCEL13_REG_STATUS   0x27
 
#define ACCEL13_REG_AXIS_X_LSB   0x28
 
#define ACCEL13_REG_AXIS_X_MSB   0x29
 
#define ACCEL13_REG_AXIS_Y_LSB   0x2A
 
#define ACCEL13_REG_AXIS_Y_MSB   0x2B
 
#define ACCEL13_REG_AXIS_Z_LSB   0x2C
 
#define ACCEL13_REG_AXIS_Z_MSB   0x2D
 
#define ACCEL13_REG_FIFO_CTRL   0x2E
 
#define ACCEL13_REG_FIFO_SAMPLES   0x2F
 
#define ACCEL13_REG_TAP_AXIS_X   0x30
 
#define ACCEL13_REG_TAP_AXIS_Y   0x31
 
#define ACCEL13_REG_TAP_AXIS_Z   0x32
 
#define ACCEL13_REG_INT_DURATION   0x33
 
#define ACCEL13_REG_WAKE_UP_THRESHOLD   0x34
 
#define ACCEL13_REG_WAKE_UP_DURATION   0x35
 
#define ACCEL13_REG_FREE_FALL_CONFIG   0x36
 
#define ACCEL13_REG_STATUS_DUP   0x37
 
#define ACCEL13_REG_WAKE_UP_SOURCE   0x38
 
#define ACCEL13_REG_TAP_SOURCE   0x39
 
#define ACCEL13_REG_6D_SOURCE   0x3A
 
#define ACCEL13_REG_ALL_INT_SOURCE   0x3B
 
#define ACCEL13_REG_X_OFFSET_USER   0x3C
 
#define ACCEL13_REG_Y_OFFSET_USER   0x3D
 
#define ACCEL13_REG_Z_OFFSET_USER   0x3E
 
#define ACCEL13_REG_CTRL_7   0x3F
 
#define ACCEL13_DEF_WHO_AM_I   0x44
 
#define ACCEL13_CTRL1_ODR_POWER_DOWN   0x00
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_12p5_1p6Hz   0x10
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_12p5Hz   0x20
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_25Hz   0x30
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_50Hz   0x40
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_100Hz   0x50
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_200Hz   0x60
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_400_200Hz   0x70
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_800_200Hz   0x80
 
#define ACCEL13_CTRL1_ODR_LOW_POWER_MODE_1600_200Hz   0x90
 
#define ACCEL13_CTRL1_MODE_LOW_POWER_MODE_12_14bit   0x00
 
#define ACCEL13_CTRL1_MODE_HIGH_PERFORMANCE_MODE_14bit   0x04
 
#define ACCEL13_CTRL1_SINGLE_DATA_CONVERSION_12_14bit   0x08
 
#define ACCEL13_CTRL1_LP_MODE_1   0x00
 
#define ACCEL13_CTRL1_LP_MODE_2   0x01
 
#define ACCEL13_CTRL1_LP_MODE_3   0x02
 
#define ACCEL13_CTRL1_LP_MODE_4   0x03
 
#define ACCEL13_CTRL2_BOOT_DISABLE   0x00
 
#define ACCEL13_CTRL2_BOOT_ENABLE   0x80
 
#define ACCEL13_CTRL2_SOFT_RESET_DISABLE   0x00
 
#define ACCEL13_CTRL2_SOFT_RESET_ENABLE   0x20
 
#define ACCEL13_CTRL2_PULLUP_CS_PIN_ENABLE   0x00
 
#define ACCEL13_CTRL2_PULLUP_CS_PIN_DISABLE   0x10
 
#define ACCEL13_CTRL2_BDU_CONTINUOUS_UPDATE   0x00
 
#define ACCEL13_CTRL2_BDU_UPDATE_REGISTER   0x08
 
#define ACCEL13_CTRL2_IF_ADD_INC_ENABLED   0x04
 
#define ACCEL13_CTRL2_IF_ADD_INC_DISABLED   0x00
 
#define ACCEL13_CTRL2_I2C_AND_SPI_ENABLE   0x00
 
#define ACCEL13_CTRL2_I2C_DISABLE   0x02
 
#define ACCEL13_CTRL2_SPI_4_WIRE   0x00
 
#define ACCEL13_CTRL2_SPI_3_WIRE   0x01
 
#define ACCEL13_CTRL3_SELF_TEST_DISABLE   0x00
 
#define ACCEL13_CTRL3_SELF_TEST_POS_SIGN   0x40
 
#define ACCEL13_CTRL3_SELF_TEST_NEG_SIGN   0x80
 
#define ACCEL13_CTRL3_PUSH_PULL_INT_PAD   0x00
 
#define ACCEL13_CTRL3_OPEN_DRAIN_INT_PAD   0x20
 
#define ACCEL13_CTRL3_LATCHED_INT_ENABLE   0x20
 
#define ACCEL13_CTRL3_LATCHED_INT_DISABLE   0x10
 
#define ACCEL13_CTRL3_INT_ACTIVE_HIGH   0x00
 
#define ACCEL13_CTRL3_INT_ACTIVE_LOW   0x08
 
#define ACCEL13_CTRL3_SLP_MODE_SEL_EN_INT2   0x00
 
#define ACCEL13_CTRL3_SLP_MODE_SEL_EN_MODE1   0x02
 
#define ACCEL13_CTRL4_INT1_6D_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_6D_ENABLED   0x80
 
#define ACCEL13_CTRL4_INT1_SINGLE_TAP_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_SINGLE_TAP_ENABLED   0x40
 
#define ACCEL13_CTRL4_INT1_WAKEUP_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_WAKEUP_ENABLED   0x20
 
#define ACCEL13_CTRL4_INT1_FREE_FALL_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_FREE_FALL_ENABLED   0x10
 
#define ACCEL13_CTRL4_INT1_TAP_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_TAP_ENABLED   0x08
 
#define ACCEL13_CTRL4_INT1_DIFF5_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_DIFF5_ENABLED   0x04
 
#define ACCEL13_CTRL4_INT1_FTH_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_FTH_ENABLED   0x02
 
#define ACCEL13_CTRL4_INT1_DRDY_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT1_DRDY_ENABLED   0x01
 
#define ACCEL13_CTRL5_INT2_SLEEP_STATE_DISABLED   0x00
 
#define ACCEL13_CTRL5_INT2_SLEEP_STATE_ENABLED   0x80
 
#define ACCEL13_CTRL5_INT2_SLEEP_CHG_DISABLED   0x00
 
#define ACCEL13_CTRL5_INT2_SLEEP_CHG_ENABLED   0x40
 
#define ACCEL13_CTRL5_INT2_BOOT_DISABLED   0x00
 
#define ACCEL13_CTRL5_INT2_BOOT_ENABLED   0x20
 
#define ACCEL13_CTRL5_INT2_T_DRDY_DISABLED   0x00
 
#define ACCEL13_CTRL5_INT2_T_DRDY_ENABLED   0x10
 
#define ACCEL13_CTRL5_INT2_OVR_DISABLED   0x00
 
#define ACCEL13_CTRL5_INT2_OVR_ENABLED   0x08
 
#define ACCEL13_CTRL4_INT2_DIFF5_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT2_DIFF5_ENABLED   0x04
 
#define ACCEL13_CTRL4_INT2_FTH_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT2_FTH_ENABLED   0x02
 
#define ACCEL13_CTRL4_INT2_DRDY_DISABLED   0x00
 
#define ACCEL13_CTRL4_INT2_DRDY_ENABLED   0x01
 
#define ACCEL13_CTRL6_BW_FILT_ODR_2   0x00
 
#define ACCEL13_CTRL6_BW_FILT_ODR_4   0x40
 
#define ACCEL13_CTRL6_BW_FILT_ODR_10   0x80
 
#define ACCEL13_CTRL6_BW_FILT_ODR_20   0xC0
 
#define ACCEL13_CTRL6_FULL_SCALE_2g   0x00
 
#define ACCEL13_CTRL6_FULL_SCALE_4g   0x10
 
#define ACCEL13_CTRL6_FULL_SCALE_8g   0x20
 
#define ACCEL13_CTRL6_FULL_SCALE_16g   0x30
 
#define ACCEL13_CTRL6_FDS_LOW_PASS   0x00
 
#define ACCEL13_CTRL6_FDS_HIGH_PASS   0x08
 
#define ACCEL13_CTRL6_LOW_NOISE_DISABLE   0x00
 
#define ACCEL13_CTRL6_LOW_NOISE_ENABLE   0x04
 
#define ACCEL13_FCTRL_BYPASS_MODE   0x00
 
#define ACCEL13_FCTRL_FIFO_MODE   0x20
 
#define ACCEL13_FCTRL_CONTINUOUS_TO_FIFO   0x60
 
#define ACCEL13_FCTRL_BYPASS_TO_CONTINUOUS   0x80
 
#define ACCEL13_FCTRL_CONTINUOUS_MODE   0xC0
 
#define ACCEL3_TAPTHX_4DEN_NO_POSITION_DETECTED   0x00
 
#define ACCEL3_TAPTHX_4DEN_POSITION_DETECTED   0x80
 
#define ACCEL3_TAPTHX_6DTHS_80_DEGREES   0x00
 
#define ACCEL3_TAPTHX_6DTHS_70_DEGREES   0x20
 
#define ACCEL3_TAPTHX_6DTHS_60_DEGREES   0x40
 
#define ACCEL3_TAPTHX_6DTHS_50_DEGREES   0x60
 
#define ACCEL3_TAPTHY_PERIOD_X_Y_Z   0x00
 
#define ACCEL3_TAPTHY_PERIOD_Y_X_Z   0x20
 
#define ACCEL3_TAPTHY_PERIOD_X_Z_Y   0x40
 
#define ACCEL3_TAPTHY_PERIOD_Z_Y_X   0x60
 
#define ACCEL13_TAPTHZ_TAP_X_DISABLE   0x00
 
#define ACCEL13_TAPTHZ_TAP_Y_DISABLE   0x00
 
#define ACCEL13_TAPTHZ_TAP_Z_DISABLE   0x00
 
#define ACCEL13_TAPTHZ_TAP_X_ENABLE   0x80
 
#define ACCEL13_TAPTHZ_TAP_Y_ENABLE   0x40
 
#define ACCEL13_TAPTHZ_TAP_Z_ENABLE   0x20
 
#define ACCEL13_WUT_TAP_SINGLE_EN   0x00
 
#define ACCEL13_WUT_TAP_SINGLE_AND_DOUBLE_EN   0x80
 
#define ACCEL13_WUT_SLEEP_DISABLE   0x00
 
#define ACCEL13_WUT_SLEEP_ENABLE   0x40
 
#define ACCEL13_FFTHS_DECODING_LSB_5   0x00
 
#define ACCEL13_FFTHS_DECODING_LSB_7   0x01
 
#define ACCEL13_FFTHS_DECODING_LSB_8   0x02
 
#define ACCEL13_FFTHS_DECODING_LSB_10   0x03
 
#define ACCEL13_FFTHS_DECODING_LSB_11   0x04
 
#define ACCEL13_FFTHS_DECODING_LSB_13   0x05
 
#define ACCEL13_FFTHS_DECODING_LSB_15   0x06
 
#define ACCEL13_FFTHS_DECODING_LSB_16   0x07
 
#define ACCEL13_SDUR_OVR_FIFO_NOT_COMPLETELY   0x00
 
#define ACCEL13_SDUR_OVR_FIFO_COMPLETELY   0x80
 
#define ACCEL13_SDUR_T_DRDY_NO_DATA   0x00
 
#define ACCEL13_SDUR_T_DRDY_DATA_IS_AVAILABLE   0x40
 
#define ACCEL13_SDUR_SLEEP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_SDUR_SLEEP_EVENT_DETECT   0x20
 
#define ACCEL13_SDUR_DOUBLE_TAP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_SDUR_DOUBLE_TAP_EVENT_DETECT   0x10
 
#define ACCEL13_SDUR_SINGLE_TAP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_SDUR_SINGLE_TAP_EVENT_DETECT   0x08
 
#define ACCEL13_SDUR_6D_IA_EVENT_NO_DETECT   0x00
 
#define ACCEL13_SDUR_6D_IA_EVENT_DETECT   0x04
 
#define ACCEL13_SDUR_FF_IA_EVENT_NO_DETECT   0x00
 
#define ACCEL13_SDUR_FF_IA_EVENT_DETECT   0x02
 
#define ACCEL13_SDUR_DRDY_NO_READY   0x00
 
#define ACCEL13_SDUR_DRDY_XYZ_NEW_DATA_AVAILABLE   0x01
 
#define ACCEL13_WUSRC_FF_IA_EVENT_NO_DETECT   0x00
 
#define ACCEL13_WUSRC_FF_IA_EVENT_DETECT   0x20
 
#define ACCEL13_WUSRC_SLEEP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_WUSRC_SLEEP_EVENT_DETECT   0x10
 
#define ACCEL13_WUSRC_WAKEUP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_WUSRC_WAKEUP_EVENT_DETECT   0x08
 
#define ACCEL13_WUSRC_WAKEUP_X_EVENT_NO_DETECT   0x00
 
#define ACCEL13_WUSRC_WAKEUP_X_EVENT_DETECT   0x04
 
#define ACCEL13_WUSRC_WAKEUP_Y_EVENT_NO_DETECT   0x00
 
#define ACCEL13_WUSRC_WAKEUP_Y_EVENT_DETECT   0x02
 
#define ACCEL13_WUSRC_WAKEUP_Z_EVENT_NO_DETECT   0x00
 
#define ACCEL13_WUSRC_WAKEUP_Z_EVENT_DETECT   0x01
 
#define ACCEL13_TAPSRC_TAP_IA_EVENT_NO_DETECT   0x00
 
#define ACCEL13_TAPSRC_TAP_EVENT_DETECT   0x40
 
#define ACCEL13_TAPSRC_SINGLE_TAP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_TAPSRC_SINGLE_TAP_EVENT_DETECT   0x20
 
#define ACCEL13_TAPSRC_DOUBLE_TAP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_TAPSRC_DOUBLE_TAP_EVENT_DETECT   0x10
 
#define ACCEL13_TAPSRC_TAP_SIGN_EVENT_NO_DETECT   0x00
 
#define ACCEL13_TAPSRC_TAP_SIGN_EVENT_DETECT   0x08
 
#define ACCEL13_TAPSRC_X_TAP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_TAPSRC_X_TAP_EVENT_DETECT   0x04
 
#define ACCEL13_TAPSRC_Y_TAP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_TAPSRC_Y_TAP_EVENT_DETECT   0x02
 
#define ACCEL13_TAPSRC_Z_TAP_EVENT_NO_DETECT   0x00
 
#define ACCEL13_TAPSRC_Z_TAP_EVENT_DETECT   0x01
 
#define ACCEL13_SIXDSRC_6D_IA_EVENT_NO_DETECT   0x00
 
#define ACCEL13_INT_PIN_INTERRUPT_1   0x00
 
#define ACCEL13_PWM_PIN_INTERRUPT_2   0x01
 

Typedefs

typedef uint8_t accel13_select_t
 Communication type.
 
typedef void(* accel13_master_io_t) (struct accel13_s *, uint8_t, uint8_t *, uint8_t)
 Master Input/Output type.
 
typedef struct accel13_s accel13_t
 Click ctx object definition.
 

Functions

void accel13_cfg_setup (accel13_cfg_t *cfg)
 Config Object Initialization function.
 
ACCEL13_RETVAL accel13_init (accel13_t *ctx, accel13_cfg_t *cfg)
 Initialization function.
 
void accel13_default_cfg (accel13_t *ctx)
 Click Default Configuration function.
 
void accel13_generic_write_bytes (accel13_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function.
 
void accel13_generic_write_single_byte (accel13_t *ctx, uint8_t reg, uint8_t data_in)
 Single byte write function.
 
void accel13_generic_read_bytes (accel13_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic 8bit read function.
 
int16_t accel13_generic_read_word (accel13_t *ctx, uint8_t reg)
 16bit read function.
 
float accel13_get_temperature (accel13_t *ctx)
 Temperature functions.
 
void accel13_get_axis_data (accel13_t *ctx, accel13_axis_t *axis)
 Read function for Accel axis data.
 
void accel13_get_status (accel13_t *ctx, accel13_status_t *status)
 Read functions for Status data.
 
void accel13_get_wake_up_status (accel13_t *ctx, accel13_wake_up_t *wu_status)
 Read function for Wake-up status data.
 
void accel13_get_tap_status (accel13_t *ctx, accel13_tap_t *tap_status)
 Read function for Tap status data.
 
void accel13_get_6d_status (accel13_t *ctx, accel13_6d_t *sixd_status)
 Read function for 6D status data.
 
void accel13_get_user_offset (accel13_t *ctx, accel13_user_offset_t *axis)
 Read function for User offset data.
 
void accel13_set_user_offset (accel13_t *ctx, accel13_user_offset_t *axis)
 Set function for User offset data.
 
uint8_t accel13_get_interrupt (accel13_t *ctx, uint8_t int_num)
 Interrupt functions.
 

Detailed Description

This file contains API for Accel 13 Click driver.