39 #include "drv_digital_out.h" 40 #include "drv_digital_in.h" 41 #include "drv_i2c_master.h" 54 #define PROXIMITY6_MAP_MIKROBUS( cfg, mikrobus ) \ 55 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \ 56 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); 63 #define PROXIMITY6_RETVAL uint8_t 65 #define PROXIMITY6_OK 0x00 66 #define PROXIMITY6_INIT_ERROR 0xFF 73 #define PROXIMITY6_DATA_REGISTER_X1_REG 0x00 74 #define PROXIMITY6_DATA_REGISTER_X2_REG 0x01 75 #define PROXIMITY6_DATA_REGISTER_Y1_REG 0x02 76 #define PROXIMITY6_DATA_REGISTER_Y2_REG 0x03 77 #define PROXIMITY6_DATA_REGISTER_SAMPLE_I_REG 0x04 78 #define PROXIMITY6_DATA_REGISTER_SAMPLE_X_REG 0x05 79 #define PROXIMITY6_DATA_REGISTER_SAMPLE_Y_REG 0x06 80 #define PROXIMITY6_RESERVED1_REG 0x07 81 #define PROXIMITY6_ID_VERSION_REG 0x08 82 #define PROXIMITY6_SLAVE_ADDRESS_REG 0x09 83 #define PROXIMITY6_OSC_CAL_OUT_REG 0x0A 84 #define PROXIMITY6_RESERVED2 0x0C 85 #define PROXIMITY6_SW_RESET_REG 0x0F 86 #define PROXIMITY6_ADC_CONTROL_RESERVED1_REG 0x10 87 #define PROXIMITY6_ADC_CONTROL_RESERVED2_REG 0x11 88 #define PROXIMITY6_AFE_TRIM_REG 0x12 89 #define PROXIMITY6_AFE_MUX_TEST_REG 0x13 90 #define PROXIMITY6_RESERVED3_REG 0x14 91 #define PROXIMITY6_LED_TRIM_REG 0x16 92 #define PROXIMITY6_OS32K_REG 0x18 93 #define PROXIMITY6_OS32M_BYPASS_REG 0x19 94 #define PROXIMITY6_OS32M_TRIM_REG 0x1A 95 #define PROXIMITY6_ADC_SPACING_REG 0x1B 96 #define PROXIMITY6_INT_PIN_REG 0x1C 97 #define PROXIMITY6_INT_PIN_POL_REG 0x1D 98 #define PROXIMITY6_I2C_REG 0x1E 99 #define PROXIMITY6_FIFO_TH_REG 0x1F 100 #define PROXIMITY6_LED_OFFSET_WIDTH_GEST_REG 0x20 101 #define PROXIMITY6_LED_PERIOD_PULSES_GEST_REG 0x21 102 #define PROXIMITY6_LED_OFFSET_WIDTH_PROX_REG 0x22 103 #define PROXIMITY6_LED_PERIOD_PULSES_PROX_REG 0x23 104 #define PROXIMITY6_LED_MASK_REG 0x24 105 #define PROXIMITY6_AFE_CONT_GEST_REG 0x25 106 #define PROXIMITY6_AFE_CONT_PROX_REG 0x26 107 #define PROXIMITY6_AFE_MASK_REG 0x27 108 #define PROXIMITY6_GEST_DI_TH_REG 0x28 109 #define PROXIMITY6_ORIENTATION_REG 0x29 110 #define PROXIMITY6_PROX_TH_ON1_REG 0x2A 111 #define PROXIMITY6_PROX_TH_OFF1_REG 0x2B 112 #define PROXIMITY6_PROX_TH_ON2_REG 0x2C 113 #define PROXIMITY6_PROX_TH_OFF2_REG 0x2D 114 #define PROXIMITY6_PROX_TH_ON1_OFF1_HIGH_REG 0x2E 115 #define PROXIMITY6_PROX_TH_ON2_OFF2_HIGH_REG 0x2F 116 #define PROXIMITY6_TEST_MODE_REG 0x30 117 #define PROXIMITY6_POWER_DOWN_CONT_REG 0x32 118 #define PROXIMITY6_GAIN_CONT1_REG 0x38 119 #define PROXIMITY6_GAIN_CONT2_REG 0x39 120 #define PROXIMITY6_CH1_OFFSET_REG 0x3A 121 #define PROXIMITY6_CH2_OFFSET_REG 0x3B 122 #define PROXIMITY6_CH3_OFFSET_REG 0x3C 123 #define PROXIMITY6_CH4_OFFSET_REG 0x3D 124 #define PROXIMITY6_SLOPE_TH_REG 0x3E 125 #define PROXIMITY6_FREQ_REG 0x40 126 #define PROXIMITY6_LED_REF_REG 0x41 127 #define PROXIMITY6_OP_TIME_REG 0x42 128 #define PROXIMITY6_AFE_TIME_REG 0x43 129 #define PROXIMITY6_DSAMPLE_TIME_REG 0x44 130 #define PROXIMITY6_OPERATION_CONTROL_REG 0x45 131 #define PROXIMITY6_DEC_MODE_REG 0x46 132 #define PROXIMITY6_INT_MASK_REG 0x48 133 #define PROXIMITY6_INT_STATUS_REG 0x49 134 #define PROXIMITY6_I2C_STATUS_REG 0x4A 135 #define PROXIMITY6_DATA_BUFFER_OUT_REG 0x60 136 #define PROXIMITY6_DEBUG_X1L_REG 0x68 137 #define PROXIMITY6_DEBUG_X2L_REG 0x69 138 #define PROXIMITY6_DEBUG_Y1L_REG 0x6A 139 #define PROXIMITY6_DEBUG_Y2L_REG 0x6B 140 #define PROXIMITY6_DEBUG_X1H_REG 0x6C 141 #define PROXIMITY6_DEBUG_X2H_REG 0x6D 142 #define PROXIMITY6_DEBUG_Y1H_REG 0x6E 143 #define PROXIMITY6_DEBUG_Y2H_REG 0x6F 150 #define PROXIMITY6_STANDBY_MODE 0 151 #define PROXIMITY6_PROXIMITY_MODE 1 152 #define PROXIMITY6_SAMPLE_MODE 2 153 #define PROXIMITY6_IDLE_MODE 3 160 #define PROXIMITY6_RIGHT_POS 0 161 #define PROXIMITY6_LEFT_POS 1 162 #define PROXIMITY6_BOTTOM_POS 2 163 #define PROXIMITY6_UP_POS 3 164 #define PROXIMITY6_NO_DETECT_POS 4 171 #define PROXIMITY6_RESOLUTION_300 0 172 #define PROXIMITY6_RESOLUTION_400 1 173 #define PROXIMITY6_RESOLUTION_500 2 174 #define PROXIMITY6_RESOLUTION_600 3 175 #define PROXIMITY6_RESOLUTION_700 4 361 #endif // _PROXIMITY6_H_ hal_i2c_speed_t i2c_speed
Definition: proximity6.h:221
void proximity6_generic_write(proximity6_t *ctx, uint8_t reg, uint16_t *data_buf, uint8_t len)
Generic write function.
i2c_master_t i2c
Definition: proximity6.h:196
void proximity6_get_position(proximity6_t *ctx, uint8_t *position)
Position Get function.
pin_name_t int_pin
Definition: proximity6.h:217
pin_name_t scl
Definition: proximity6.h:212
void proximity6_cfg_setup(proximity6_cfg_t *cfg)
Config Object Initialization function.
PROXIMITY6_RETVAL proximity6_init(proximity6_t *ctx, proximity6_cfg_t *cfg)
Initialization function.
uint8_t proximity6_check_interrupt(proximity6_t *ctx)
Interrupt Check function.
void proximity6_default_cfg(proximity6_t *ctx)
Click Default Configuration function.
hal_i2c_address_t slave_address
Definition: proximity6.h:200
uint8_t mode_sel
Definition: proximity6.h:201
Click configuration structure definition.
Definition: proximity6.h:208
uint8_t proximity6_set_mode(proximity6_t *ctx, uint8_t select_mode)
Mode Set function.
Click ctx object definition.
Definition: proximity6.h:188
uint8_t proximity6_display_data(proximity6_t *ctx, uint8_t *data_value, uint8_t set_resolution)
Data Display function.
pin_name_t sda
Definition: proximity6.h:213
digital_in_t int_pin
Definition: proximity6.h:192
void proximity6_generic_read(proximity6_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic read function.
#define PROXIMITY6_RETVAL
Definition: proximity6.h:63
hal_i2c_address_t i2c_address
Definition: proximity6.h:222
uint8_t proximity6_read_data(proximity6_t *ctx, uint16_t *axis_out)
Data Read function.
void proximity6_load_settings(proximity6_t *ctx)
Settings Load function.