c6dofimu2 2.0.0.0
c6dofimu2.h File Reference

This file contains API for 6DOF IMU 2 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  c6dofimu2_s
 Click ctx object definition. More...
 
struct  c6dofimu2_cfg_t
 Click configuration structure definition. More...
 
struct  c6dofimu2_accel_data_t
 Accel data object definition. More...
 
struct  c6dofimu2_gyro_data_t
 Gyro data object definition. More...
 

Macros

#define C6DOFIMU2_MAP_MIKROBUS(cfg, mikrobus)
 
#define C6DOFIMU2_MASTER_I2C   0
 
#define C6DOFIMU2_MASTER_SPI   1
 
#define C6DOFIMU2_RETVAL   uint8_t
 
#define C6DOFIMU2_OK   0x00
 
#define C6DOFIMU2_INIT_ERROR   0xFF
 
#define C6DOFIMU2_I2C_ADDR   0x68
 
#define C6DOFIMU2_REG_CHIP_ID   0x00
 
#define C6DOFIMU2_REG_ERROR   0x02
 
#define C6DOFIMU2_REG_PMU_STATUS   0x03
 
#define C6DOFIMU2_REG_AUX_DATA   0x04
 
#define C6DOFIMU2_REG_GYRO_DATA   0x0C
 
#define C6DOFIMU2_REG_ACCEL_DATA   0x12
 
#define C6DOFIMU2_REG_STATUS   0x1B
 
#define C6DOFIMU2_REG_INT_STATUS   0x1C
 
#define C6DOFIMU2_REG_FIFO_LENGTH   0x22
 
#define C6DOFIMU2_REG_FIFO_DATA   0x24
 
#define C6DOFIMU2_REG_ACCEL_CONFIG   0x40
 
#define C6DOFIMU2_REG_ACCEL_RANGE   0x41
 
#define C6DOFIMU2_REG_GYRO_CONFIG   0x42
 
#define C6DOFIMU2_REG_GYRO_RANGE   0x43
 
#define C6DOFIMU2_REG_AUX_ODR   0x44
 
#define C6DOFIMU2_REG_FIFO_DOWN   0x45
 
#define C6DOFIMU2_REG_FIFO_CONFIG_0   0x46
 
#define C6DOFIMU2_REG_FIFO_CONFIG_1   0x47
 
#define C6DOFIMU2_REG_AUX_IF_0   0x4B
 
#define C6DOFIMU2_REG_AUX_IF_1   0x4C
 
#define C6DOFIMU2_REG_AUX_IF_2   0x4D
 
#define C6DOFIMU2_REG_AUX_IF_3   0x4E
 
#define C6DOFIMU2_REG_AUX_IF_4   0x4F
 
#define C6DOFIMU2_REG_INT_ENABLE_0   0x50
 
#define C6DOFIMU2_REG_INT_ENABLE_1   0x51
 
#define C6DOFIMU2_REG_INT_ENABLE_2   0x52
 
#define C6DOFIMU2_REG_INT_OUT_CTRL   0x53
 
#define C6DOFIMU2_REG_INT_LATCH   0x54
 
#define C6DOFIMU2_REG_INT_MAP_0   0x55
 
#define C6DOFIMU2_REG_INT_MAP_1   0x56
 
#define C6DOFIMU2_REG_INT_MAP_2   0x57
 
#define C6DOFIMU2_REG_INT_DATA_0   0x58
 
#define C6DOFIMU2_REG_INT_DATA_1   0x59
 
#define C6DOFIMU2_REG_INT_LOWHIGH_0   0x5A
 
#define C6DOFIMU2_REG_INT_LOWHIGH_1   0x5B
 
#define C6DOFIMU2_REG_INT_LOWHIGH_2   0x5C
 
#define C6DOFIMU2_REG_INT_LOWHIGH_3   0x5D
 
#define C6DOFIMU2_REG_INT_LOWHIGH_4   0x5E
 
#define C6DOFIMU2_REG_INT_MOTION_0   0x5F
 
#define C6DOFIMU2_REG_INT_MOTION_1   0x60
 
#define C6DOFIMU2_REG_INT_MOTION_2   0x61
 
#define C6DOFIMU2_REG_INT_MOTION_3   0x62
 
#define C6DOFIMU2_REG_INT_TAP_0   0x63
 
#define C6DOFIMU2_REG_INT_TAP_1   0x64
 
#define C6DOFIMU2_REG_INT_ORIENT_0   0x65
 
#define C6DOFIMU2_REG_INT_ORIENT_1   0x66
 
#define C6DOFIMU2_REG_INT_FLAT_0   0x67
 
#define C6DOFIMU2_REG_INT_FLAT_1   0x68
 
#define C6DOFIMU2_REG_FOC_CONF   0x69
 
#define C6DOFIMU2_REG_CONF   0x6A
 
#define C6DOFIMU2_REG_NV_CONF   0x70
 
#define C6DOFIMU2_CFG_IF_CONF   0x6B
 
#define C6DOFIMU2_CFG_SELF_TEST   0x6D
 
#define C6DOFIMU2_CFG_OFFSET   0x71
 
#define C6DOFIMU2_CFG_OFFSET_CONF   0x77
 
#define C6DOFIMU2_CFG_INT_STEP_CNT_0   0x78
 
#define C6DOFIMU2_CFG_INT_STEP_CONFIG_0   0x7A
 
#define C6DOFIMU2_CFG_INT_STEP_CONFIG_1   0x7B
 
#define C6DOFIMU2_CFG_COMMAND   0x7E
 
#define C6DOFIMU2_CFG_SPI_COMM_TEST   0x7F
 
#define C6DOFIMU2_CFG_INTL_PULLUP_CONF   0x85
 
#define C6DOFIMU2_CMD_ACCEL_NORMAL   0x11
 
#define C6DOFIMU2_CMD_ACCEL_LOW_PWR   0x12
 
#define C6DOFIMU2_CMD_GYRO_NORMAL   0x15
 
#define C6DOFIMU2_CMD_GYRO_FAST   0x7E
 
#define C6DOFIMU2_CMD_SEL_I2C   0x00
 
#define C6DOFIMU2_CMD_SEL_SPI   0x01
 
#define C6DOFIMU2_GYRO_X_L   0x0C
 
#define C6DOFIMU2_GYRO_X_H   0x0D
 
#define C6DOFIMU2_GYRO_Y_L   0x0E
 
#define C6DOFIMU2_GYRO_Y_H   0x0F
 
#define C6DOFIMU2_GYRO_Z_L   0x10
 
#define C6DOFIMU2_GYRO_Z_H   0x11
 
#define C6DOFIMU2_ACCEL_X_L   0x12
 
#define C6DOFIMU2_ACCEL_X_H   0x13
 
#define C6DOFIMU2_ACCEL_Y_L   0x14
 
#define C6DOFIMU2_ACCEL_Y_H   0x15
 
#define C6DOFIMU2_ACCEL_Z_L   0x16
 
#define C6DOFIMU2_ACCEL_Z_H   0x17
 

Typedefs

typedef uint8_t c6dofimu2_select_t
 Communication type.
 
typedef void(* c6dofimu2_master_io_t) (struct c6dofimu2_s *, uint8_t, uint8_t *, uint8_t)
 Master Input/Output type.
 
typedef struct c6dofimu2_s c6dofimu2_t
 Click ctx object definition.
 

Functions

void c6dofimu2_cfg_setup (c6dofimu2_cfg_t *cfg)
 Config Object Initialization function.
 
C6DOFIMU2_RETVAL c6dofimu2_init (c6dofimu2_t *ctx, c6dofimu2_cfg_t *cfg)
 Initialization function.
 
void c6dofimu2_default_cfg (c6dofimu2_t *ctx, c6dofimu2_cfg_t *cfg)
 Click Default Configuration function.
 
void c6dofimu2_generic_write (c6dofimu2_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function.
 
void c6dofimu2_generic_read (c6dofimu2_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic read function.
 
int16_t c6dofimu2_get_axis (c6dofimu2_t *ctx, uint8_t adr_reg_low, uint8_t adr_reg_high)
 Low and high register data function.
 
void c6dofimu2_read_accel (c6dofimu2_t *ctx, c6dofimu2_accel_data_t *accel_data)
 Read axis function.
 
void c6dofimu2_read_gyro (c6dofimu2_t *ctx, c6dofimu2_gyro_data_t *gyro_data)
 Read axis function.
 

Detailed Description

This file contains API for 6DOF IMU 2 Click driver.