accel18 2.0.0.0
accel18.h File Reference

This file contains API for Accel 18 Click Driver. More...

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

Go to the source code of this file.

Data Structures

struct  accel18_s
 Accel 18 Click context object. More...
 
struct  accel18_cfg_t
 Accel 18 Click configuration object. More...
 
struct  accel18_axes_t
 Accel 18 Click axes data. More...
 

Macros

#define ACCEL18_REG_DEVICE_STATUS   0x05
 Accel 18 description register.
 
#define ACCEL18_REG_INTERRUPT_ENABLE   0x06
 
#define ACCEL18_REG_MODE   0x07
 
#define ACCEL18_REG_SAMPLE_RATE   0x08
 
#define ACCEL18_REG_MOTION_CONTROL   0x09
 
#define ACCEL18_REG_FIFO_STATUS   0x0A
 
#define ACCEL18_REG_FIFO_READ_POINTER   0x0B
 
#define ACCEL18_REG_FIFO_WRITE_POINTER   0x0C
 
#define ACCEL18_REG_XOUT_ACCEL_DATA_LSB   0x0D
 
#define ACCEL18_REG_XOUT_ACCEL_DATA_MSB   0x0E
 
#define ACCEL18_REG_YOUT_ACCEL_DATA_LSB   0x0F
 
#define ACCEL18_REG_YOUT_ACCEL_DATA_MSB   0x10
 
#define ACCEL18_REG_ZOUT_ACCEL_DATA_LSB   0x11
 
#define ACCEL18_REG_ZOUT_ACCEL_DATA_MSB   0x12
 
#define ACCEL18_REG_STATUS   0x13
 
#define ACCEL18_REG_INTERRUPT_STATUS   0x14
 
#define ACCEL18_REG_RANGE_SELECTION   0x20
 
#define ACCEL18_REG_X_OFFSET_LSB   0x21
 
#define ACCEL18_REG_X_OFFSET_MSB   0x22
 
#define ACCEL18_REG_Y_OFFSET_LSB   0x23
 
#define ACCEL18_REG_Y_OFFSET_MSB   0x24
 
#define ACCEL18_REG_Z_OFFSET_LSB   0x25
 
#define ACCEL18_REG_Z_OFFSET_MSB   0x26
 
#define ACCEL18_REG_X_GAIN   0x27
 
#define ACCEL18_REG_Y_GAIN   0x28
 
#define ACCEL18_REG_Z_GAIN   0x29
 
#define ACCEL18_REG_FIFO_CONTROL   0x2D
 
#define ACCEL18_REG_FIFO_THRESHOLD   0x2E
 
#define ACCEL18_REG_FIFO_INTERRUPT_STATUS   0x2F
 
#define ACCEL18_REG_FIFO_CONTROL2   0x30
 
#define ACCEL18_REG_COMMUNICATION_CONTROL   0x31
 
#define ACCEL18_REG_GPIO_CONTROL   0x33
 
#define ACCEL18_REG_TILT_FLIP_THRESHOLD_LSB   0x40
 
#define ACCEL18_REG_TILT_FLIP_THRESHOLD_MSB   0x41
 
#define ACCEL18_REG_TILT_FLIP_DEBOUNCE   0x42
 
#define ACCEL18_REG_ANY_MOTION_THRESHOLD_LSB   0x43
 
#define ACCEL18_REG_ANY_MOTION_THRESHOLD_MSB   0x44
 
#define ACCEL18_REG_ANY_MOTION_DEBOUNCE   0x45
 
#define ACCEL18_REG_SNAKE_THRESHOLD_LSB   0x46
 
#define ACCEL18_REG_SNAKE_THRESHOLD_MSB   0x47
 
#define ACCEL18_REG_PEAK_TO_PEAK_DURATION_LSB   0x48
 
#define ACCEL18_REG_SNAKE_PEAK_TO_PEAK_DURATION_MSB   0x49
 
#define ACCEL18_REG_TIMER   0x4A
 
#define ACCEL18_REG_READ_COUNT   0x4B
 
#define ACCEL18_STATE_STANDBY   0x00
 Accel 18 state.
 
#define ACCEL18_STATE_WAKE   0x01
 
#define ACCEL18_INT_TILT_EN   0x01
 Accel 18 interrupt setting.
 
#define ACCEL18_INT_FLIP_EN   0x02
 
#define ACCEL18_INT_ANYM_EN   0x04
 
#define ACCEL18_INT_SHAKE_EN   0x08
 
#define ACCEL18_INT_TILT_35_EN   0x10
 
#define ACCEL18_INT_AUTO_CLR_EN   0x40
 
#define ACCEL18_INT_ACQ_EN   0x80
 
#define ACCEL18_RATE_25   0x10
 Accel 18 sample rate setting.
 
#define ACCEL18_RATE_50   0x11
 
#define ACCEL18_RATE_62p5   0x12
 
#define ACCEL18_RATE_100   0x13
 
#define ACCEL18_RATE_125   0x14
 
#define ACCEL18_RATE_250   0x15
 
#define ACCEL18_RATE_500   0x16
 
#define ACCEL18_RATE_1000   0x17
 
#define ACCEL18_FIFO_CTRL2_BURST_MODE   0x80
 Accel 18 fifo control 2 setting.
 
#define ACCEL18_FIFO_CTRL2_SELECT_WRAP_ADDR   0x20
 
#define ACCEL18_FIFO_CTRL2_ENABLE_WRAP_N   0x10
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DISABLE   0x00
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_2   0x01
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_4   0x02
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_5   0x03
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_8   0x04
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_10   0x05
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_16   0x06
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_20   0x07
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_40   0x08
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_67   0x09
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_80   0x0A
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_100   0x0B
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_200   0x0C
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_250   0x0D
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_500   0x0E
 
#define ACCEL18_FIFO_CTRL2_DEC_MODE_RATE_DIV_1000   0x0F
 
#define ACCEL18_GPIO_CTRL_INT1_ACTIVE_LOW   0x00
 Accel 18 gpio control setting.
 
#define ACCEL18_GPIO_CTRL_INT1_ACTIVE_HIGH   0x04
 
#define ACCEL18_GPIO_CTRL_INT1_OPEN_DRAIN   0x00
 
#define ACCEL18_GPIO_CTRL_INT1_PUSH_PULL   0x08
 
#define ACCEL18_GPIO_CTRL_INT2_ACTIVE_LOW   0x00
 
#define ACCEL18_GPIO_CTRL_INT2_ACTIVE_HIGH   0x40
 
#define ACCEL18_GPIO_CTRL_INT2_OPEN_DRAIN   0x00
 
#define ACCEL18_GPIO_CTRL_INT2_PUSH_PULL   0x80
 
#define ACCEL18_MOTION_TF_EN   0x01
 Accel 18 motion setting.
 
#define ACCEL18_MOTION_LATCH   0x02
 
#define ACCEL18_MOTION_ANYM_EN   0x04
 
#define ACCEL18_MOTION_SHAKE_EN   0x08
 
#define ACCEL18_MOTION_TILT_35   0x10
 
#define ACCEL18_MOTION_Z_AXIS_ORT   0x20
 
#define ACCEL18_MOTION_RAW_PROC_STAT   0x40
 
#define ACCEL18_MOTION_RESET   0x80
 
#define ACCEL18_STATUS_TILT   0x01
 Accel 18 status.
 
#define ACCEL18_STATUS_FLIP   0x02
 
#define ACCEL18_STATUS_ANYM   0x04
 
#define ACCEL18_STATUS_SHAKE   0x08
 
#define ACCEL18_STATUS_TILT35   0x10
 
#define ACCEL18_STATUS_FIFO   0x20
 
#define ACCEL18_STATUS_NEW_DATA   0x80
 
#define ACCEL18_RANGE_2G   0x00
 Accel 18 range and scale setting.
 
#define ACCEL18_RANGE_4G   0x10
 
#define ACCEL18_RANGE_8G   0x20
 
#define ACCEL18_RANGE_16G   0x30
 
#define ACCEL18_RANGE_12G   0x40
 
#define ACCEL18_LOW_PASS_FILTER_EN   0x08
 
#define ACCEL18_LOW_PASS_FILTER_DIV4p255   0x01
 
#define ACCEL18_LOW_PASS_FILTER_DIV6   0x02
 
#define ACCEL18_LOW_PASS_FILTER_DIV12   0x03
 
#define ACCEL18_LOW_PASS_FILTER_DIV16   0x05
 
#define ACCEL18_GND_ADDR   0x4C
 Accel 18 device address setting.
 
#define ACCEL18_VCC_ADDR   0x6C
 
#define ACCEL18_SET_DEV_ADDR   ACCEL18_GND_ADDR
 
#define ACCEL18_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
 
#define ACCEL18_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define ACCEL18_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Typedefs

typedef err_t(* accel18_master_io_t) (struct accel18_s *, uint8_t, uint8_t *, uint8_t)
 Accel 18 Click driver interface.
 
typedef struct accel18_s accel18_t
 Accel 18 Click context object.
 

Enumerations

enum  accel18_drv_t { ACCEL18_DRV_SEL_SPI , ACCEL18_DRV_SEL_I2C }
 Accel 18 Click driver selector. More...
 
enum  accel18_return_value_t { ACCEL18_OK = 0 , ACCEL18_ERROR = -1 }
 Accel 18 Click return value data. More...
 

Functions

void accel18_cfg_setup (accel18_cfg_t *cfg)
 Accel 18 configuration object setup function.
 
void accel18_drv_interface_selection (accel18_cfg_t *cfg, accel18_drv_t drv_sel)
 Accel 18 driver interface setup function.
 
err_t accel18_init (accel18_t *ctx, accel18_cfg_t *cfg)
 Accel 18 initialization function.
 
err_t accel18_default_cfg (accel18_t *ctx)
 Accel 18 default configuration function.
 
err_t accel18_generic_write (accel18_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Accel 18 data writing function.
 
err_t accel18_byte_write (accel18_t *ctx, uint8_t reg, uint8_t data_in)
 Accel 18 byte writing function.
 
err_t accel18_generic_read (accel18_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Accel 18 data reading function.
 
err_t accel18_byte_read (accel18_t *ctx, uint8_t reg, uint8_t *data_out)
 Accel 18 byte reading function.
 
err_t accel18_read_axes (accel18_t *ctx, accel18_axes_t *axes_data)
 Accel data reading.
 
err_t accel18_set_range (accel18_t *ctx, uint8_t range_macro)
 Set range configuration.
 
uint8_t accel18_get_interrupt_1 (accel18_t *ctx)
 Get interrupt 1 pin state.
 
uint8_t accel18_get_interrupt_2 (accel18_t *ctx)
 Get interrupt 2 pin state.
 

Detailed Description

This file contains API for Accel 18 Click Driver.

Typedef Documentation

◆ accel18_master_io_t

typedef err_t(* accel18_master_io_t) (struct accel18_s *, uint8_t, uint8_t *, uint8_t)

Accel 18 Click driver interface.

Definition of driver interface of Accel 18 Click driver. Driver serial interface.

◆ accel18_t

typedef struct accel18_s accel18_t

Accel 18 Click context object.

Context object definition of Accel 18 Click driver.

Enumeration Type Documentation

◆ accel18_drv_t

Accel 18 Click driver selector.

Selects target driver interface of Accel 18 Click driver.

Enumerator
ACCEL18_DRV_SEL_SPI 

SPI driver descriptor.

ACCEL18_DRV_SEL_I2C 

I2C driver descriptor.

◆ accel18_return_value_t

Accel 18 Click return value data.

Predefined enum values for driver return values.

Enumerator
ACCEL18_OK 
ACCEL18_ERROR