38 #include "drv_digital_out.h" 39 #include "drv_digital_in.h" 40 #include "drv_i2c_master.h" 52 #define PROXIMITY_MAP_MIKROBUS( cfg, mikrobus ) \ 53 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \ 54 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \ 55 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT ) 62 #define PROXIMITY_RETVAL uint8_t 64 #define PROXIMITY_OK 0x00 65 #define PROXIMITY_INIT_ERROR 0xFF 72 #define PROXIMITY_SLAVE_ADDR 0x13 73 #define PROXIMITY_REGISTER_COMMAND 0x80 74 #define PROXIMITY_REGISTER_ID 0x81 75 #define PROXIMITY_REGISTER_PROX_RATE 0x82 76 #define PROXIMITY_REGISTER_PROX_CURRENT 0x83 77 #define PROXIMITY_REGISTER_AMBI_PARAMETER 0x84 78 #define PROXIMITY_REGISTER_AMBI_VALUE 0x85 79 #define PROXIMITY_REGISTER_PROX_VALUE 0x87 80 #define PROXIMITY_REGISTER_INTERRUPT_CONTROL 0x89 81 #define PROXIMITY_REGISTER_INTERRUPT_LOW_THRES 0x8a 82 #define PROXIMITY_REGISTER_INTERRUPT_HIGH_THRES 0x8c 83 #define PROXIMITY_REGISTER_INTERRUPT_STATUS 0x8e 84 #define PROXIMITY_REGISTER_PROX_TIMING 0xf9 85 #define PROXIMITY_REGISTER_AMBI_IR_LIGHT_LEVEL 0x90 92 #define PROXIMITY_COMMAND_ALL_DISABLE 0x00 93 #define PROXIMITY_COMMAND_SELFTIMED_MODE_ENABLE 0x01 94 #define PROXIMITY_COMMAND_PROX_ENABLE 0x02 95 #define PROXIMITY_COMMAND_AMBI_ENABLE 0x04 96 #define PROXIMITY_COMMAND_PROX_ON_DEMAND 0x08 97 #define PROXIMITY_COMMAND_AMBI_ON_DEMAND 0x10 98 #define PROXIMITY_COMMAND_MASK_PROX_DATA_READY 0x20 99 #define PROXIMITY_COMMAND_MASK_AMBI_DATA_READY 0x40 100 #define PROXIMITY_COMMAND_MASK_LOCK 0x80 107 #define PROXIMITY_PRODUCT_MASK_REVISION_ID 0x0f 108 #define PROXIMITY_PRODUCT_MASK_PRODUCT_ID 0xf0 115 #define PROXIMITY_MEASUREMENT_RATE_2 0x00 116 #define PROXIMITY_MEASUREMENT_RATE_4 0x01 117 #define PROXIMITY_MEASUREMENT_RATE_8 0x02 118 #define PROXIMITY_MEASUREMENT_RATE_16 0x03 119 #define PROXIMITY_MEASUREMENT_RATE_31 0x04 120 #define PROXIMITY_MEASUREMENT_RATE_62 0x05 121 #define PROXIMITY_MEASUREMENT_RATE_125 0x06 122 #define PROXIMITY_MEASUREMENT_RATE_250 0x07 123 #define PROXIMITY_MASK_MEASUREMENT_RATE 0x07 130 #define PROXIMITY_MASK_LED_CURRENT 0x3f 131 #define PROXIMITY_MASK_FUSE_PROG_ID 0xc0 138 #define PROXIMITY_AMBI_PARA_AVERAGE_1 0x00 139 #define PROXIMITY_AMBI_PARA_AVERAGE_2 0x01 140 #define PROXIMITY_AMBI_PARA_AVERAGE_4 0x02 141 #define PROXIMITY_AMBI_PARA_AVERAGE_8 0x03 142 #define PROXIMITY_AMBI_PARA_AVERAGE_16 0x04 143 #define PROXIMITY_AMBI_PARA_AVERAGE_32 0x05 144 #define PROXIMITY_AMBI_PARA_AVERAGE_64 0x06 145 #define PROXIMITY_AMBI_PARA_AVERAGE_128 0x07 146 #define PROXIMITY_AMBI_MASK_PARA_AVERAGE 0x07 147 #define PROXIMITY_AMBI_PARA_AUTO_OFFSET_ENABLE 0x08 148 #define PROXIMITY_AMBI_MASK_PARA_AUTO_OFFSET 0x08 149 #define PROXIMITY_AMBI_PARA_MEAS_RATE_1 0x00 150 #define PROXIMITY_AMBI_PARA_MEAS_RATE_2 0x10 151 #define PROXIMITY_AMBI_PARA_MEAS_RATE_3 0x20 152 #define PROXIMITY_AMBI_PARA_MEAS_RATE_4 0x30 153 #define PROXIMITY_AMBI_PARA_MEAS_RATE_5 0x40 154 #define PROXIMITY_AMBI_PARA_MEAS_RATE_6 0x50 155 #define PROXIMITY_AMBI_PARA_MEAS_RATE_8 0x60 156 #define PROXIMITY_AMBI_PARA_MEAS_RATE_10 0x70 157 #define PROXIMITY_AMBI_MASK_PARA_MEAS_RATE 0x70 158 #define PROXIMITY_AMBI_PARA_CONT_CONV_ENABLE 0x80 159 #define PROXIMITY_AMBI_MASK_PARA_CONT_CONV 0x80 166 #define PROXIMITY_INTERRUPT_THRES_SEL_PROX 0x00 167 #define PROXIMITY_INTERRUPT_THRES_SEL_ALS 0x01 168 #define PROXIMITY_INTERRUPT_THRES_ENABLE 0x02 169 #define PROXIMITY_INTERRUPT_ALS_READY_ENABLE 0x04 170 #define PROXIMITY_INTERRUPT_PROX_READY_ENABLE 0x08 171 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_1 0x00 172 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_2 0x20 173 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_4 0x40 174 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_8 0x60 175 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_16 0x80 176 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_32 0xa0 177 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_64 0xc0 178 #define PROXIMITY_INTERRUPT_COUNT_EXCEED_128 0xe0 179 #define PROXIMITY_INTERRUPT_MASK_COUNT_EXCEED 0xe0 180 #define PROXIMITY_INTERRUPT_STATUS_THRES_HI 0x01 181 #define PROXIMITY_INTERRUPT_STATUS_THRES_LO 0x02 182 #define PROXIMITY_INTERRUPT_STATUS_ALS_READY 0x04 183 #define PROXIMITY_INTERRUPT_STATUS_PROX_READY 0x08 184 #define PROXIMITY_INTERRUPT_MASK_STATUS_THRES_HI 0x01 185 #define PROXIMITY_INTERRUPT_MASK_THRES_LO 0x02 186 #define PROXIMITY_INTERRUPT_MASK_ALS_READY 0x04 187 #define PROXIMITY_INTERRUPT_MASK_PROX_READY 0x08 339 #endif // _PROXIMITY_H_ Click ctx object definition.
Definition: proximity.h:199
void proximity_write_byte(proximity_t *ctx, uint8_t w_addr, uint8_t w_data)
Functions for write one byte in register.
void proximity_read_data(proximity_t *ctx, uint8_t r_addr, uint8_t *rcv_data, uint8_t n_len)
Functions for read data from register.
PROXIMITY_RETVAL proximity_init(proximity_t *ctx, proximity_cfg_t *cfg)
Initialization function.
void proximity_write_data(proximity_t *ctx, uint8_t w_addr, uint8_t *wr_data, uint8_t n_len)
Functions for write data.
uint8_t slave_address
Definition: proximity.h:212
Click configuration structure definition.
Definition: proximity.h:219
void proximity_cfg_setup(proximity_cfg_t *cfg)
Config Object Initialization function.
void proximity_set_default_mode(proximity_t *ctx)
Functions for sets default mode.
#define PROXIMITY_RETVAL
Definition: proximity.h:62
uint16_t proximity_read_prox_data(proximity_t *ctx)
Functions for reads Proximity data.
digital_in_t int_pin
Definition: proximity.h:204
pin_name_t sda
Definition: proximity.h:224
i2c_master_t i2c
Definition: proximity.h:208
uint16_t proximity_read_ambient_light(proximity_t *ctx)
Functions for reads Ambient light.
uint8_t proximity_read_byte(proximity_t *ctx, uint8_t r_addr)
Functions for read byte from register.
pin_name_t int_pin
Definition: proximity.h:228
void proximity_set_upper_threshold(proximity_t *ctx)
Functions for sets upper threshold.
pin_name_t scl
Definition: proximity.h:223
uint32_t i2c_speed
Definition: proximity.h:232
uint8_t i2c_address
Definition: proximity.h:233