pedometer3 2.0.0.0
pedometer3.h File Reference

This file contains API for Pedometer 3 Click driver. More...

#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  pedometer3_s
 Click ctx object definition. More...
 
struct  pedometer3_cfg_t
 Click configuration structure definition. More...
 
struct  pedometer3_axis_t
 Axis structure. More...
 
struct  pedometer3_tilt_position_t
 Tilt position structure. More...
 

Macros

#define PEDOMETER3_MAP_MIKROBUS(cfg, mikrobus)
 
#define PEDOMETER3_MASTER_I2C   0
 
#define PEDOMETER3_MASTER_SPI   1
 
#define PEDOMETER3_OK   0
 
#define PEDOMETER3_ERROR   -1
 
#define PEDOMETER3_REG_MANUFACTURING_ID   0x00
 
#define PEDOMETER3_REG_PART_ID   0x01
 
#define PEDOMETER3_REG_X_AXIS_HIGH_PASS_LOW   0x02
 
#define PEDOMETER3_REG_X_AXIS_HIGH_PASS_HIGH   0x03
 
#define PEDOMETER3_REG_Y_AXIS_HIGH_PASS_LOW   0x04
 
#define PEDOMETER3_REG_Y_AXIS_HIGH_PASS_HIGH   0x05
 
#define PEDOMETER3_REG_Z_AXIS_HIGH_PASS_LOW   0x06
 
#define PEDOMETER3_REG_Z_AXIS_HIGH_PASS_HIGH   0x07
 
#define PEDOMETER3_REG_X_AXIS_OUTPUT_LOW   0x08
 
#define PEDOMETER3_REG_X_AXIS_OUTPUT_HIGH   0x09
 
#define PEDOMETER3_REG_Y_AXIS_OUTPUT_LOW   0x0A
 
#define PEDOMETER3_REG_Y_AXIS_OUTPUT_HIGH   0x0B
 
#define PEDOMETER3_REG_Z_AXIS_OUTPUT_LOW   0x0C
 
#define PEDOMETER3_REG_Z_AXIS_OUTPUT_HIGH   0x0D
 
#define PEDOMETER3_REG_PAD_STEP_LOW   0x0E
 
#define PEDOMETER3_REG_PAD_STEP_HIGH   0x0F
 
#define PEDOMETER3_REG_COMMAND_TEST_RESPONSE   0x10
 
#define PEDOMETER3_REG_WHO_AM_I   0x11
 
#define PEDOMETER3_REG_CURRENT_TILT_POSITION   0x12
 
#define PEDOMETER3_REG_PREVIOUS_TILT_POSITION   0x13
 
#define PEDOMETER3_REG_INS1   0x14
 
#define PEDOMETER3_REG_INS2   0x15
 
#define PEDOMETER3_REG_INS3   0x16
 
#define PEDOMETER3_REG_STATUS   0x17
 
#define PEDOMETER3_REG_INT_REL   0x19
 
#define PEDOMETER3_REG_CONTROL_1   0x1A
 
#define PEDOMETER3_REG_CONTROL_2   0x1B
 
#define PEDOMETER3_REG_CONTROL_3   0x1C
 
#define PEDOMETER3_REG_CONTROL_4   0x1D
 
#define PEDOMETER3_REG_CONTROL_5   0x1E
 
#define PEDOMETER3_REG_OUTPUT_DATA_CONTROL   0x1F
 
#define PEDOMETER3_REG_INTERRUPT_CONTROL_1   0x20
 
#define PEDOMETER3_REG_INTERRUPT_CONTROL_2   0x21
 
#define PEDOMETER3_REG_INTERRUPT_CONTROL_3   0x22
 
#define PEDOMETER3_REG_INTERRUPT_CONTROL_4   0x23
 
#define PEDOMETER3_REG_INTERRUPT_CONTROL_5   0x24
 
#define PEDOMETER3_REG_INTERRUPT_CONTROL_6   0x25
 
#define PEDOMETER3_REG_INTERRUPT_CONTROL_7   0x26
 
#define PEDOMETER3_REG_TILT_TIMER   0x27
 
#define PEDOMETER3_REG_TAP_REPORT_CONTROL   0x28
 
#define PEDOMETER3_REG_DOUBLE_TAP_EVENT   0x29
 
#define PEDOMETER3_REG_TAP_THRESHOLD_HIGH   0x2A
 
#define PEDOMETER3_REG_TAP_THRESHOLD_LOW   0x2B
 
#define PEDOMETER3_REG_FTD   0x2C
 
#define PEDOMETER3_REG_STD   0x2D
 
#define PEDOMETER3_REG_TLT   0x2E
 
#define PEDOMETER3_REG_TWS   0x2F
 
#define PEDOMETER3_REG_FREE_FALL_THRESHOLD   0x30
 
#define PEDOMETER3_REG_FREE_FALL_COUNTER   0x31
 
#define PEDOMETER3_REG_FREE_FALL_CONTROL   0x32
 
#define PEDOMETER3_REG_TILT_ANGLE_LL   0x34
 
#define PEDOMETER3_REG_TILT_ANGLE_HL   0x35
 
#define PEDOMETER3_REG_HYSTERESIS_SET   0x36
 
#define PEDOMETER3_REG_LOW_POWER_CONTROL   0x37
 
#define PEDOMETER3_REG_WUFTH   0x3C
 
#define PEDOMETER3_REG_BTSWUFTH   0x3D
 
#define PEDOMETER3_REG_BTSTH   0x3E
 
#define PEDOMETER3_REG_BTS_MOTION_DETECTION   0x3F
 
#define PEDOMETER3_REG_WUF_MOTION_DETECTION   0x40
 
#define PEDOMETER3_REG_PED_STPWM_LOW   0x41
 
#define PEDOMETER3_REG_PED_STPWM_HIGH   0x42
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_1   0x43
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_2   0x44
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_3   0x45
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_4   0x46
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_5   0x47
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_6   0x48
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_7   0x49
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_8   0x4A
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_9   0x4B
 
#define PEDOMETER3_REG_PEDOMETER_CONTROL_10   0x4C
 
#define PEDOMETER3_REG_SELF_TEST   0x4D
 
#define PEDOMETER3_REG_BUFFER_CONTROL_1   0x5A
 
#define PEDOMETER3_REG_BUFFER_CONTROL_2   0x5B
 
#define PEDOMETER3_REG_BUFFER_STATUS_1   0x5C
 
#define PEDOMETER3_REG_BUFFER_STATUS_2   0x5D
 
#define PEDOMETER3_REG_BUFFER_CLEAR   0x5E
 
#define PEDOMETER3_REG_BUFFER_READ   0x5F
 
#define PEDOMETER3_POSITON_BIT_LEFT_X_NEGATIVE   0x20
 
#define PEDOMETER3_POSITON_BIT_RIGHT_X_POSITIVE   0x10
 
#define PEDOMETER3_POSITON_BIT_DOWN_Y_NEGATIVE   0x08
 
#define PEDOMETER3_POSITON_BIT_UP_Y_POSITIVE   0x04
 
#define PEDOMETER3_POSITON_BIT_FACE_DOWN_Y_NEGATIVE   0x02
 
#define PEDOMETER3_POSITON_BIT_FACE_UP_Y_POSITIVE   0x01
 
#define PEDOMETER3_INS1_STPOVI   0x80
 
#define PEDOMETER3_INS1_STPWMI   0x40
 
#define PEDOMETER3_INS1_TLE   0x20
 
#define PEDOMETER3_INS1_TRI   0x10
 
#define PEDOMETER3_INS1_TDO   0x08
 
#define PEDOMETER3_INS1_TUO   0x04
 
#define PEDOMETER3_INS1_TFD   0x02
 
#define PEDOMETER3_INS1_TFU   0x01
 
#define PEDOMETER3_INS2_FFS   0x80
 
#define PEDOMETER3_INS2_BFI   0x40
 
#define PEDOMETER3_INS2_WMI   0x20
 
#define PEDOMETER3_INS2_DRDY   0x10
 
#define PEDOMETER3_INS2_TDTS_NO_TAP   0x00
 
#define PEDOMETER3_INS2_TDTS_SINGLE_TAP   0x04
 
#define PEDOMETER3_INS2_TDTS_DOUBLE_TAP   0x08
 
#define PEDOMETER3_INS2_STPINCI   0x02
 
#define PEDOMETER3_INS2_TPS   0x01
 
#define PEDOMETER3_INS3_WUFS   0x80
 
#define PEDOMETER3_INS3_BTS   0x40
 
#define PEDOMETER3_INS3_XNWU   0x20
 
#define PEDOMETER3_INS3_XPWU   0x10
 
#define PEDOMETER3_INS3_YNWU   0x08
 
#define PEDOMETER3_INS3_YPWU   0x04
 
#define PEDOMETER3_INS3_ZNWU   0x02
 
#define PEDOMETER3_INS3_ZPWU   0x01
 
#define PEDOMETER3_STATUS_NO_INT   0x00
 
#define PEDOMETER3_STATUS_INT_ACTIVE   0x10
 
#define PEDOMETER3_STATUS_BACK_TO_SLEEP   0x00
 
#define PEDOMETER3_STATUS_WAKE_UP   0x01
 
#define PEDOMETER3_CNTL1_MODE_STAND_BY   0x00
 
#define PEDOMETER3_CNTL1_MODE_LOW_POWER   0x80
 
#define PEDOMETER3_CNTL1_RES_MODE_HIGHER_NOISE   0x00
 
#define PEDOMETER3_CNTL1_RES_MODE_LOWER_NOISE   0x40
 
#define PEDOMETER3_CNTL1_DATA_READY_DISABLE   0x00
 
#define PEDOMETER3_CNTL1_DATA_READY_ENABLE   0x20
 
#define PEDOMETER3_CNTL1_G_RANGE_2g   0x00
 
#define PEDOMETER3_CNTL1_G_RANGE_4g   0x08
 
#define PEDOMETER3_CNTL1_G_RANGE_8g   0x10
 
#define PEDOMETER3_CNTL1_TAP_DISABLE   0x00
 
#define PEDOMETER3_CNTL1_TAP_ENABLE   0x04
 
#define PEDOMETER3_CNTL1_PEDOMETER_DISABLE   0x00
 
#define PEDOMETER3_CNTL1_PEDOMETER_ENABLE   0x02
 
#define PEDOMETER3_CNTL1_TILT_DISABLE   0x00
 
#define PEDOMETER3_CNTL1_TILT_ENABLE   0x01
 
#define PEDOMETER3_CNTL2_SOFTWARE_RESET_ACTIVE   0x80
 
#define PEDOMETER3_CNTL2_SOFTWARE_RESET_NO_ACTIVE   0x00
 
#define PEDOMETER3_CNTL2_COMMAND_TEST_ACTIVE   0x40
 
#define PEDOMETER3_CNTL2_COMMAND_TEST_NO_ACTIVE   0x00
 
#define PEDOMETER3_CNTL2_LEFT_STATE_ENABLE   0x20
 
#define PEDOMETER3_CNTL2_RIGHT_STATE_ENABLE   0x10
 
#define PEDOMETER3_CNTL2_DOWN_STATE_ENABLE   0x08
 
#define PEDOMETER3_CNTL2_UP_STATE_ENABLE   0x04
 
#define PEDOMETER3_CNTL2_FACE_DOWN_STATE_ENABLE   0x02
 
#define PEDOMETER3_CNTL2_FACE_UP_STATE_ENABLE   0x01
 
#define PEDOMETER3_CNTL3_OTP_OUTPUT_DATA_RATE_1_563Hz   0x00
 
#define PEDOMETER3_CNTL3_OTP_OUTPUT_DATA_RATE_6_25Hz   0x40
 
#define PEDOMETER3_CNTL3_OTP_OUTPUT_DATA_RATE_12_5Hz   0x80
 
#define PEDOMETER3_CNTL3_OTP_OUTPUT_DATA_RATE_50Hz   0xC0
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_50Hz   0x00
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_100Hz   0x08
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_200Hz   0x10
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_400Hz   0x18
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_12_5Hz   0x20
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_25Hz   0x28
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_800Hz   0x30
 
#define PEDOMETER3_CNTL3_TAP_OUTPUT_DATA_RATE_1600Hz   0x38
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_0_781Hz   0x00
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_1_563Hz   0x01
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_3_125Hz   0x02
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_6_250Hz   0x03
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_12_5Hz   0x04
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_25Hz   0x05
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_50Hz   0x06
 
#define PEDOMETER3_CNTL3_OWUF_OUTPUT_DATA_RATE_100Hz   0x07
 
#define PEDOMETER3_CNTL4_COUNTER_CLEAR_MODE   0x00
 
#define PEDOMETER3_CNTL4_COUNTER_DECREMENT_MODE   0x80
 
#define PEDOMETER3_CNTL4_THRESHOLD_MODE_ABSOLUTE   0x00
 
#define PEDOMETER3_CNTL4_THRESHOLD_MODE_RELATIVE   0x40
 
#define PEDOMETER3_CNTL4_WAKE_UP_DISABLE   0x00
 
#define PEDOMETER3_CNTL4_WAKE_UP_ENABLE   0x20
 
#define PEDOMETER3_CNTL4_BACK_TO_SLEEP_DISABLE   0x00
 
#define PEDOMETER3_CNTL4_BACK_TO_SLEEP_ENABLE   0x10
 
#define PEDOMETER3_CNTL4_HIGH_PASS_DISABLE   0x00
 
#define PEDOMETER3_CNTL4_HIGH_PASS_ENABLE   0x08
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_0_781Hz   0x00
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_1_563Hz   0x01
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_3_125Hz   0x02
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_6_250Hz   0x03
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_12_5Hz   0x04
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_25Hz   0x05
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_50Hz   0x06
 
#define PEDOMETER3_CNTL4_OBTS_OUTPUT_DATA_RATE_100Hz   0x07
 
#define PEDOMETER3_CNTL5_MANUAL_WAKE_UP_0   0x00
 
#define PEDOMETER3_CNTL5_MANUAL_WAKE_UP_1   0x02
 
#define PEDOMETER3_CNTL5_MANUAL_SLEEP_UP_0   0x00
 
#define PEDOMETER3_CNTL5_MANUAL_SLEEP_UP_1   0x01
 
#define PEDOMETER3_ODCNTL_IR_BYPASS_FILTERING_APPLIED   0x00
 
#define PEDOMETER3_ODCNTL_IR_BYPASS_FILTER_BYPASSED   0x80
 
#define PEDOMETER3_ODCNTL_LPRO_ODR_9   0x00
 
#define PEDOMETER3_ODCNTL_LPRO_ODR_2   0x40
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_12_5Hz   0x00
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_25Hz   0x01
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_50Hz   0x02
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_100Hz   0x03
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_200Hz   0x04
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_400Hz   0x05
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_800Hz   0x06
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_1600Hz   0x07
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_0_781Hz   0x08
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_1_563Hz   0x09
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_3_125Hz   0x0A
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_6_25Hz   0x0B
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_3200Hz   0x0C
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_6400Hz   0x0D
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_12800Hz   0x0E
 
#define PEDOMETER3_ODCNTL_OSA_OUTPUT_DATA_RATE_25600Hz   0x0F
 
#define PEDOMETER3_INC1_PULSE_INTERRUPT_1_50uSec   0x00
 
#define PEDOMETER3_INC1_PULSE_INTERRUPT_1_OSA_PERIOD   0x40
 
#define PEDOMETER3_INC1_PULSE_INTERRUPT_1_OSA2_PERIOD   0x80
 
#define PEDOMETER3_INC1_PULSE_INTERRUPT_1_OSA4_PERIOD   0xC0
 
#define PEDOMETER3_INC1_PHYSICAL_INTERRUPT_DISABLE   0x00
 
#define PEDOMETER3_INC1_PHYSICAL_INTERRUPT_ENABLE   0x20
 
#define PEDOMETER3_INC1_INTERRUPT_ACTIVE_LEVEL_LOW   0x00
 
#define PEDOMETER3_INC1_INTERRUPT_ACTIVE_LEVEL_HIGH   0x10
 
#define PEDOMETER3_INC1_INTERRUPT_LATCHED   0x00
 
#define PEDOMETER3_INC1_INTERRUPT_PULSED   0x08
 
#define PEDOMETER3_INC1_SELF_TEST_POLARITY_NEGATIVE   0x00
 
#define PEDOMETER3_INC1_SELF_TEST_POLARITY_POSITIVE   0x02
 
#define PEDOMETER3_INC1_3_WIRE_SPI_INTERFACE_DISABLE   0x00
 
#define PEDOMETER3_INC1_3_WIRE_SPI_INTERFACE_ENABLED   0x01
 
#define PEDOMETER3_INC2_AOI_ACTIVE_STATE_IN_OR   0x00
 
#define PEDOMETER3_INC2_AOI_ACTIVE_STATE_IN_AND   0x40
 
#define PEDOMETER3_INC2_X_NEGATIVE_DISABLE   0x00
 
#define PEDOMETER3_INC2_X_NEGATIVE_ENABEL   0x20
 
#define PEDOMETER3_INC2_Y_NEGATIVE_DISABLE   0x00
 
#define PEDOMETER3_INC2_Y_NEGATIVE_ENABEL   0x08
 
#define PEDOMETER3_INC2_Z_NEGATIVE_DISABLE   0x00
 
#define PEDOMETER3_INC2_Z_NEGATIVE_ENABEL   0x02
 
#define PEDOMETER3_INC2_X_POSITIVE_DISABLE   0x00
 
#define PEDOMETER3_INC2_X_POSITIVE_ENABEL   0x10
 
#define PEDOMETER3_INC2_Y_POSITIVE_DISABLE   0x00
 
#define PEDOMETER3_INC2_Y_POSITIVE_ENABEL   0x04
 
#define PEDOMETER3_INC2_Z_POSITIVE_DISABLE   0x00
 
#define PEDOMETER3_INC2_Z_POSITIVE_ENABEL   0x01
 
#define PEDOMETER3_INC3_ALTERNATE_TAP_DISABLE   0x00
 
#define PEDOMETER3_INC3_ALTERNATE_TAP_ENABLE   0x40
 
#define PEDOMETER3_INC3_LEFT_STATE_DISABLE   0x00
 
#define PEDOMETER3_INC3_LEFT_STATE_ENABLE   0x20
 
#define PEDOMETER3_INC3_RIGHT_STATE_DISABLE   0x00
 
#define PEDOMETER3_INC3_RIGHT_STATE_ENABLE   0x10
 
#define PEDOMETER3_INC3_DOWN_STATE_DISABLE   0x00
 
#define PEDOMETER3_INC3_DOWN_STATE_ENABLE   0x08
 
#define PEDOMETER3_INC3_UP_STATE_DISABLE   0x00
 
#define PEDOMETER3_INC3_UP_STATE_ENABLE   0x04
 
#define PEDOMETER3_INC3_FACE_DOWN_STATE_DISABLE   0x00
 
#define PEDOMETER3_INC3_FACE_DOWN_STATE_ENABLE   0x02
 
#define PEDOMETER3_INC3_FACE_UP_STATE_DISABLE   0x00
 
#define PEDOMETER3_INC3_FACE_UP_STATE_ENABLE   0x01
 
#define PEDOMETER3_INC4_FREE_FALL_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_FREE_FALL_INTERRUPT_1_ENABLE   0x80
 
#define PEDOMETER3_INC4_BUFFER_FULL_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_BUFFER_FULL_INTERRUPT_1_ENABLE   0x40
 
#define PEDOMETER3_INC4_WATERMARK_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_WATERMARK_INTERRUPT_1_ENABLE   0x20
 
#define PEDOMETER3_INC4_DATA_READY_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_DATA_READY_INTERRUPT_1_ENABLE   0x10
 
#define PEDOMETER3_INC4_BACK_TO_SLEEP_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_BACK_TO_SLEEP_INTERRUPT_1_ENABLE   0x08
 
#define PEDOMETER3_INC4_TAP_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_TAP_INTERRUPT_1_ENABLE   0x04
 
#define PEDOMETER3_INC4_WAKE_UP_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_WAKE_UP_INTERRUPT_1_ENABLE   0x02
 
#define PEDOMETER3_INC4_TILT_POSITION_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC4_TILT_POSITION_INTERRUPT_1_ENABLE   0x01
 
#define PEDOMETER3_INC5_PULSE_INTERRUPT_2_50uSec   0x00
 
#define PEDOMETER3_INC5_PULSE_INTERRUPT_2_OSA_PERIOD   0x40
 
#define PEDOMETER3_INC5_PULSE_INTERRUPT_2_OSA2_PERIOD   0x80
 
#define PEDOMETER3_INC5_PULSE_INTERRUPT_2_OSA4_PERIOD   0xC0
 
#define PEDOMETER3_INC5_PHYSICAL_INTERRUPT_DISABLE   0x00
 
#define PEDOMETER3_INC5_PHYSICAL_INTERRUPT_ENABLE   0x20
 
#define PEDOMETER3_INC5_INTERRUPT_ACTIVE_LEVEL_LOW   0x00
 
#define PEDOMETER3_INC5_INTERRUPT_ACTIVE_LEVEL_HIGH   0x10
 
#define PEDOMETER3_INC5_INTERRUPT_LATCHED   0x00
 
#define PEDOMETER3_INC5_INTERRUPT_PULSED   0x08
 
#define PEDOMETER3_INC5_LATCHED_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC5_LATCHED_INTERRUPT_2_ENABLE   0x02
 
#define PEDOMETER3_INC5_LATCHED_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC5_LATCHED_INTERRUPT_1_ENABLE   0x01
 
#define PEDOMETER3_INC6_FREE_FALL_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_FREE_FALL_INTERRUPT_2_ENABLE   0x80
 
#define PEDOMETER3_INC6_BUFFER_FULL_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_BUFFER_FULL_INTERRUPT_2_ENABLE   0x40
 
#define PEDOMETER3_INC6_WATERMARK_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_WATERMARK_INTERRUPT_2_ENABLE   0x20
 
#define PEDOMETER3_INC6_DATA_READY_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_DATA_READY_INTERRUPT_2_ENABLE   0x10
 
#define PEDOMETER3_INC6_BACK_TO_SLEEP_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_BACK_TO_SLEEP_INTERRUPT_2_ENABLE   0x08
 
#define PEDOMETER3_INC6_TAP_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_TAP_INTERRUPT_2_ENABLE   0x04
 
#define PEDOMETER3_INC6_WAKE_UP_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_WAKE_UP_INTERRUPT_2_ENABLE   0x02
 
#define PEDOMETER3_INC6_TILT_POSITION_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC6_TILT_POSITION_INTERRUPT_2_ENABLE   0x01
 
#define PEDOMETER3_INC7_STEP_OVERFLOW_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC7_STEP_OVERFLOW_INTERRUPT_2_ENABLE   0x40
 
#define PEDOMETER3_INC7_STEP_WATERMARK_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC7_STEP_WATERMARK_INTERRUPT_2_ENABLE   0x20
 
#define PEDOMETER3_INC7_STEP_INCREMENT_INTERRUPT_2_DISABLE   0x00
 
#define PEDOMETER3_INC7_STEP_INCREMENT_INTERRUPT_2_ENABLE   0x10
 
#define PEDOMETER3_INC7_STEP_OVERFLOW_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC7_STEP_OVERFLOW_INTERRUPT_1_ENABLE   0x04
 
#define PEDOMETER3_INC7_STEP_WATERMARK_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC7_STEP_WATERMARK_INTERRUPT_1_ENABLE   0x02
 
#define PEDOMETER3_INC7_STEP_INCREMENT_INTERRUPT_1_DISABLE   0x00
 
#define PEDOMETER3_INC7_STEP_INCREMENT_INTERRUPT_1_ENABLE   0x01
 
#define PEDOMETER3_TDTRC_DOUBLE_TAP_INTERRUPT_DISABLE   0x00
 
#define PEDOMETER3_TDTRC_DOUBLE_TAP_INTERRUPT_ENABLE   0x02
 
#define PEDOMETER3_TDTRC_SINGLE_TAP_INTERRUPT_DISABLE   0x00
 
#define PEDOMETER3_TDTRC_SINGLE_TAP_INTERRUPT_ENABLE   0x01
 
#define PEDOMETER3_FFCNTL_FREE_FALL_DISABLE   0x00
 
#define PEDOMETER3_FFCNTL_FREE_FALL_ENABLE   0x80
 
#define PEDOMETER3_FFCNTL_FREE_FALL_INTERRUPT_LATCH_DISABLE   0x00
 
#define PEDOMETER3_FFCNTL_FREE_FALL_INTERRUPT_UNLATCH_ENABLE   0x40
 
#define PEDOMETER3_FFCNTL_DEBOUNCE_METHODOLOGY_DISABLE   0x00
 
#define PEDOMETER3_FFCNTL_DEBOUNCE_METHODOLOGY_ENABLE   0x08
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_12_5Hz   0x00
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_25Hz   0x01
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_50Hz   0x02
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_100Hz   0x03
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_200Hz   0x04
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_400Hz   0x05
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_800Hz   0x06
 
#define PEDOMETER3_FFCNTL_OFFI_OUTPUT_DATA_RATE_1600Hz   0x07
 
#define PEDOMETER3_LP_CNTL_NO_AVERAGING   0x00
 
#define PEDOMETER3_LP_CNTL_2_SAMPLES_AVERAGED   0x10
 
#define PEDOMETER3_LP_CNTL_4_SAMPLES_AVERAGED   0x20
 
#define PEDOMETER3_LP_CNTL_8_SAMPLES_AVERAGED   0x30
 
#define PEDOMETER3_LP_CNTL_16_SAMPLES_AVERAGED   0x40
 
#define PEDOMETER3_LP_CNTL_32_SAMPLES_AVERAGED   0x50
 
#define PEDOMETER3_LP_CNTL_64_SAMPLES_AVERAGED   0x60
 
#define PEDOMETER3_LP_CNTL_128_SAMPLES_AVERAGED   0x70
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_NO_STEPS   0x00
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_2_STEPS   0x01
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_4_STEPS   0x02
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_6_STEPS   0x03
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_8_STEPS   0x04
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_10_STEPS   0x05
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_12_STEPS   0x06
 
#define PEDOMETER3_PED_CNTL1_STEP_TH_14_STEPS   0x07
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_1   0x00
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_2   0x10
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_4   0x20
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_8   0x30
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_16   0x40
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_32   0x50
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_64   0x60
 
#define PEDOMETER3_PED_CNTL2_HIGH_PASS_FILTER_128   0x70
 
#define PEDOMETER3_PED_CNTL2_ODR_SELECT_100Hz   0x0C
 
#define PEDOMETER3_PED_CNTL2_ODR_SELECT_50Hz   0x06
 
#define PEDOMETER3_SLAVE_ADDRESS_0   0x1E
 
#define PEDOMETER3_SLAVE_ADDRESS_1   0x1F
 
#define PEDOMETER3_TILT_POSITION_LEFT   1
 
#define PEDOMETER3_TILT_POSITION_RIGHT   2
 
#define PEDOMETER3_TILT_POSITION_DOWN   3
 
#define PEDOMETER3_TILT_POSITION_UP   4
 
#define PEDOMETER3_TILT_POSITION_FACE_DOWN   5
 
#define PEDOMETER3_TILT_POSITION_FACE_UP   6
 
#define PEDOMETER3_TAP_X_NEGATIVE   0x10
 
#define PEDOMETER3_TAP_X_POSITIVE   0x11
 
#define PEDOMETER3_TAP_Y_NEGATIVE   0x20
 
#define PEDOMETER3_TAP_Y_POSITIVE   0x21
 
#define PEDOMETER3_TAP_Z_NEGATIVE   0x30
 
#define PEDOMETER3_TAP_Z_POSITIVE   0x31
 

Typedefs

typedef uint8_t pedometer3_select_t
 Comunication select type.
 
typedef void(* pedometer3_master_io_t) (struct pedometer3_s *, uint8_t, uint8_t *, uint8_t)
 Function pointer for master input/output type.
 
typedef struct pedometer3_s pedometer3_t
 Click ctx object definition.
 

Functions

void pedometer3_cfg_setup (pedometer3_cfg_t *cfg)
 Config Object Initialization function.
 
err_t pedometer3_init (pedometer3_t *ctx, pedometer3_cfg_t *cfg)
 Initialization function.
 
void pedometer3_default_cfg (pedometer3_t *ctx)
 Click Default Configuration function.
 
void pedometer3_generic_write (pedometer3_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function.
 
void pedometer3_generic_read (pedometer3_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic read function.
 
void pedometer3_get_accel_axis (pedometer3_t *ctx, pedometer3_axis_t *axis)
 Functions for read Accel axis data.
 
void pedometer3_get_hp_accel_axis (pedometer3_t *ctx, pedometer3_axis_t *axis)
 Functions for read High Pass Accel axis data.
 
void pedometer3_set_step_watermark (pedometer3_t *ctx, uint16_t value)
 Functions for sets pedometer step counter Watermark.
 
void pedometer3_pedometer_cfg (pedometer3_t *ctx, uint8_t odr)
 Functions for pedometer configuration.
 
uint16_t pedometer3_get_step_counter (pedometer3_t *ctx)
 Functions for get pedometer step counter.
 
void pedometer3_get_tilt_position (pedometer3_t *ctx, pedometer3_tilt_position_t *tilt)
 Functions for get Tilt current and previous position.
 
uint8_t pedometer3_get_tap_detection (pedometer3_t *ctx)
 Functions for get Tap detection.
 
err_t pedometer3_test_communication (pedometer3_t *ctx)
 Functions for test first comunication width chip.
 
uint8_t pedometer3_get_interrupt_1 (pedometer3_t *ctx)
 Functions for read INT pin state.
 
uint8_t pedometer3_get_interrupt_2 (pedometer3_t *ctx)
 Functions for read RST pin state.
 
uint8_t pedometer3_get_trigger_int (pedometer3_t *ctx)
 Functions for read AN pin state.
 

Detailed Description

This file contains API for Pedometer 3 Click driver.