38 #include "drv_digital_out.h" 39 #include "drv_digital_in.h" 40 #include "drv_i2c_master.h" 53 #define UV4_MAP_MIKROBUS( cfg, mikrobus ) \ 54 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \ 55 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \ 56 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT ) 63 #define UV4_RETVAL uint8_t 66 #define UV4_INIT_ERROR 0xFF 73 #define UV4_PART_ID_REG 0x00 74 #define UV4_HW_ID_REG 0x01 75 #define UV4_REV_ID_REG 0x02 76 #define UV4_INFO_0_REG 0x03 77 #define UV4_INFO_1_REG 0x04 78 #define UV4_INPUT_3_REG 0x07 79 #define UV4_INPUT_2_REG 0x08 80 #define UV4_INPUT_1_REG 0x09 81 #define UV4_INPUT_0_REG 0x0A 82 #define UV4_COMMAND_REG 0x0B 83 #define UV4_IRQ_ENABLE_REG 0x0F 84 #define UV4_RESPONSE_1_REG 0x10 85 #define UV4_RESPONSE_0_REG 0x11 86 #define UV4_IRQ_STATUS_REG 0x12 87 #define UV4_OUTPUT_0_REG 0x13 88 #define UV4_OUTPUT_1_REG 0x14 89 #define UV4_OUTPUT_2_REG 0x15 90 #define UV4_OUTPUT_3_REG 0x16 91 #define UV4_OUTPUT_4_REG 0x17 92 #define UV4_OUTPUT_5_REG 0x18 93 #define UV4_OUTPUT_6_REG 0x19 94 #define UV4_OUTPUT_7_REG 0x1A 95 #define UV4_OUTPUT_8_REG 0x1B 96 #define UV4_OUTPUT_9_REG 0x1C 97 #define UV4_OUTPUT_10_REG 0x1D 98 #define UV4_OUTPUT_11_REG 0x1E 99 #define UV4_OUTPUT_12_REG 0x1F 100 #define UV4_OUTPUT_13_REG 0x20 101 #define UV4_OUTPUT_14_REG 0x21 102 #define UV4_OUTPUT_15_REG 0x22 103 #define UV4_OUTPUT_16_REG 0x23 104 #define UV4_OUTPUT_17_REG 0x24 105 #define UV4_OUTPUT_18_REG 0x25 106 #define UV4_OUTPUT_19_REG 0x26 107 #define UV4_OUTPUT_20_REG 0x27 108 #define UV4_OUTPUT_21_REG 0x28 109 #define UV4_OUTPUT_22_REG 0x29 110 #define UV4_OUTPUT_23_REG 0x2A 111 #define UV4_OUTPUT_24_REG 0x2B 112 #define UV4_OUTPUT_25_REG 0x2C 119 #define UV4_I2C_ADDR_PARAM 0x00 120 #define UV4_CHAN_LIST_PARAM 0x01 121 #define UV4_ADCCONFIG_0_PARAM 0x02 122 #define UV4_ADCSENS_0_PARAM 0x03 123 #define UV4_ADCPOST_0_PARAM 0x04 124 #define UV4_MEASCONFIG_0_PARAM 0x05 125 #define UV4_ADCCONFIG_1_PARAM 0x06 126 #define UV4_ADCSENS_1_PARAM 0x07 127 #define UV4_ADCPOST_1_PARAM 0x08 128 #define UV4_MEASCONFIG_1_PARAM 0x09 129 #define UV4_ADCCONFIG_2_PARAM 0x0A 130 #define UV4_ADCSENS_2_PARAM 0x0B 131 #define UV4_ADCPOST_2_PARAM 0x0C 132 #define UV4_MEASCONFIG_2_PARAM 0x0D 133 #define UV4_ADCCONFIG_3_PARAM 0x0E 134 #define UV4_ADCSENS_3_PARAM 0x0F 135 #define UV4_ADCPOST_3_PARAM 0x10 136 #define UV4_MEASCONFIG_3_PARAM 0x11 137 #define UV4_ADCCONFIG_4_PARAM 0x12 138 #define UV4_ADCSENS_4_PARAM 0x13 139 #define UV4_ADCPOST_4_PARAM 0x14 140 #define UV4_MEASCONFIG_4_PARAM 0x15 141 #define UV4_ADCCONFIG_5_PARAM 0x16 142 #define UV4_ADCSENS_5_PARAM 0x17 143 #define UV4_ADCPOST_5_PARAM 0x18 144 #define UV4_MEASCONFIG_5_PARAM 0x19 145 #define UV4_MEASRATE_H_PARAM 0x1A 146 #define UV4_MEASRATE_L_PARAM 0x1B 147 #define UV4_MEASCOUNT_0_PARAM 0x1C 148 #define UV4_MEASCOUNT_1_PARAM 0x1D 149 #define UV4_MEASCOUNT_2_PARAM 0x1E 150 #define UV4_THRESHOLD0_H_PARAM 0x25 151 #define UV4_THRESHOLD0_L_PARAM 0x26 152 #define UV4_THRESHOLD1_H_PARAM 0x27 153 #define UV4_THRESHOLD1_L_PARAM 0x28 154 #define UV4_THRESHOLD2_H_PARAM 0x29 155 #define UV4_THRESHOLD2_L_PARAM 0x2A 156 #define UV4_BURST_PARAM 0x2B 163 #define UV4_RESET_CTR_CMD 0x00 164 #define UV4_RESET_SW_CMD 0x01 165 #define UV4_FORCE_CMD 0x11 166 #define UV4_PAUSE_CMD 0x12 167 #define UV4_START_CMD 0x13 174 #define UV4_ALL_INTERR_DISABLE 0x00 175 #define UV4_CHAN0_INTERR_ENABLE 0x01 176 #define UV4_CHAN1_INTERR_ENABLE 0x02 177 #define UV4_CHAN2_INTERR_ENABLE 0x04 178 #define UV4_CHAN3_INTERR_ENABLE 0x08 179 #define UV4_CHAN4_INTERR_ENABLE 0x10 180 #define UV4_CHAN5_INTERR_ENABLE 0x20 187 #define UV4_ALL_CHANNELS_DISABLE 0x00 188 #define UV4_CHAN0_ENABLE 0x01 189 #define UV4_CHAN1_ENABLE 0x02 190 #define UV4_CHAN2_ENABLE 0x04 191 #define UV4_CHAN3_ENABLE 0x08 192 #define UV4_CHAN4_ENABLE 0x10 193 #define UV4_CHAN5_ENABLE 0x20 200 #define UV4_DATARATE_1024 0x00 201 #define UV4_DATARATE_2048 0x20 202 #define UV4_DATARATE_4096 0x40 203 #define UV4_DATARATE_512 0x60 210 #define UV4_OPT_FUNC_SMALL_IR 0x00 211 #define UV4_OPT_FUNC_MEDIUM_IR 0x01 212 #define UV4_OPT_FUNC_LARGE_IR 0x02 213 #define UV4_OPT_FUNC_WHITE 0x0B 214 #define UV4_OPT_FUNC_LARGE_WHITE 0x0D 215 #define UV4_OPT_FUNC_UV 0x18 216 #define UV4_OPT_FUNC_UV_DEEP 0x19 223 #define UV4_NORMAL_GAIN 0x00 224 #define UV4_HIGH_RANGE 0x80 225 #define UV4_1_MEASUREMENT 0x00 226 #define UV4_2_MEASUREMENTS 0x10 227 #define UV4_4_MEASUREMENTS 0x20 228 #define UV4_8_MEASUREMENTS 0x30 229 #define UV4_16_MEASUREMENTS 0x40 230 #define UV4_32_MEASUREMENTS 0x50 231 #define UV4_64_MEASUREMENTS 0x60 232 #define UV4_128_MEASUREMENTS 0x70 233 #define UV4_MEASTIME_24MICROSEC 0x00 234 #define UV4_MEASTIME_48MICROSEC 0x01 235 #define UV4_MEASTIME_96MICROSEC 0x02 236 #define UV4_MEASTIME_25MILISEC 0x0A 237 #define UV4_MEASTIME_50MILISEC 0x0B 244 #define UV4_16BIT_OUT 0x00 245 #define UV4_24BIT_OUT 0x40 246 #define UV4_NO_SHIFT_RIGHT 0x00 247 #define UV4_1BIT_SHIFT_RIGHT 0x08 248 #define UV4_2BITS_SHIFT_RIGHT 0x10 249 #define UV4_3BITS_SHIFT_RIGHT 0x18 250 #define UV4_4BITS_SHIFT_RIGHT 0x20 257 #define UV4_THRESHOLDS_DISABLE 0x00 258 #define UV4_THRESHOLD0_INTERR_ENABLE 0x01 259 #define UV4_THRESHOLD1_INTERR_ENABLE 0x02 260 #define UV4_THRESHOLD2_INTERR_ENABLE 0x03 267 #define UV4_NO_COUNTER_SELECTED 0x00 268 #define UV4_MEASCOUNT1_SELECT 0x40 269 #define UV4_MEASCOUNT2_SELECT 0x80 270 #define UV4_MEASCOUNT3_SELECT 0xC0 277 #define UV4_BURST_DISABLE 0x00 278 #define UV4_BURST_ENABLE 0x80 285 #define UV4_AUTOINC_ENABLE 0x00 286 #define UV4_AUTOINC_DISABLE 0x40 294 #define UV4_ADDR_ERR 0x01 295 #define UV4_PARAM_ERR 0x02 296 #define UV4_CMMND_ERR 0x03 297 #define UV4_LOC_ERR 0x04 298 #define UV4_ACCM_OVERFLOW 0x05 299 #define UV4_BUFF_OVERFLOW 0x06 300 #define UV4_RST_OCCURED 0x07 301 #define UV4_INTERR_OCCURED 0xFF 302 #define UV4_NO_INTERR 0x00 330 uint8_t optical_data[ 6 ];
358 uint8_t optical_data[ 6 ];
UV4_RETVAL uv4_check_err_and_ctr(uv4_t *ctx, uint8_t *cnt_data)
Error And Counter Check function.
uint8_t dev_tmp
Definition: uv4.h:360
uint8_t config_byte
Definition: uv4.h:328
digital_in_t int_pin
Definition: uv4.h:318
pin_name_t scl
Definition: uv4.h:345
uint8_t inc_en
Definition: uv4.h:334
void uv4_cfg_setup(uv4_cfg_t *cfg)
Config Object Initialization function.
UV4_RETVAL uv4_write_param_data(uv4_t *ctx, uint8_t param_address, uint8_t transfer_data)
Parameter Data Write Function.
UV4_RETVAL uv4_read_reg(uv4_t *ctx, uint8_t reg_address, uint8_t *data_out, uint8_t n_bytes)
Generic read function.
void uv4_default_cfg(uv4_t *ctx)
Click Default Configuration function.
i2c_master_t i2c
Definition: uv4.h:322
Click ctx object definition.
Definition: uv4.h:315
UV4_RETVAL uv4_read_param_data(uv4_t *ctx, uint8_t param_address, uint8_t *param_out)
Parameter Data Read Function.
UV4_RETVAL uv4_check_interr(uv4_t *ctx)
Error And Counter Check function.
UV4_RETVAL uv4_write_reg(uv4_t *ctx, const uint8_t reg_address, const uint8_t transfer_data)
Generic write function.
UV4_RETVAL uv4_init(uv4_t *ctx, uv4_cfg_t *cfg)
Initialization function.
uint8_t config_byte
Definition: uv4.h:357
void uv4_read_measurements(uv4_t *ctx, uint32_t *measure_out)
Measurements Read Function.
pin_name_t int_pin
Definition: uv4.h:350
uint8_t tmp
Definition: uv4.h:332
hal_i2c_address_t slave_address
Definition: uv4.h:326
pin_name_t sda
Definition: uv4.h:346
#define UV4_RETVAL
Definition: uv4.h:63
hal_i2c_address_t i2c_address
Definition: uv4.h:355
hal_i2c_speed_t i2c_speed
Definition: uv4.h:354
Click configuration structure definition.
Definition: uv4.h:341