Go to the documentation of this file.
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
73 #define COLOR16_REG_AUXID 0x58
74 #define COLOR16_REG_REVID 0x59
75 #define COLOR16_REG_ID 0x5A
76 #define COLOR16_REG_CFG_12 0x66
77 #define COLOR16_REG_ENABLE 0x80
78 #define COLOR16_REG_ATIME 0x81
79 #define COLOR16_REG_WTIME 0x83
80 #define COLOR16_REG_SP_TH_L_LSB 0x84
81 #define COLOR16_REG_SP_TH_L_MSB 0x85
82 #define COLOR16_REG_SP_TH_H_LSB 0x86
83 #define COLOR16_REG_SP_TH_H_MSB 0x87
84 #define COLOR16_REG_STATUS 0x93
85 #define COLOR16_REG_ASTATUS 0x94
86 #define COLOR16_REG_DATA_0_L 0x95
87 #define COLOR16_REG_DATA_0_H 0x96
88 #define COLOR16_REG_DATA_1_L 0x97
89 #define COLOR16_REG_DATA_1_H 0x98
90 #define COLOR16_REG_DATA_2_L 0x99
91 #define COLOR16_REG_DATA_2_H 0x9A
92 #define COLOR16_REG_DATA_3_L 0x9B
93 #define COLOR16_REG_DATA_3_H 0x9C
94 #define COLOR16_REG_DATA_4_L 0x9D
95 #define COLOR16_REG_DATA_4_H 0x9E
96 #define COLOR16_REG_DATA_5_L 0x9F
97 #define COLOR16_REG_DATA_5_H 0xA0
98 #define COLOR16_REG_DATA_6_L 0xA1
99 #define COLOR16_REG_DATA_6_H 0xA2
100 #define COLOR16_REG_DATA_7_L 0xA3
101 #define COLOR16_REG_DATA_7_H 0xA4
102 #define COLOR16_REG_DATA_8_L 0xA5
103 #define COLOR16_REG_DATA_8_H 0xA6
104 #define COLOR16_REG_DATA_9_L 0xA7
105 #define COLOR16_REG_DATA_9_H 0xA8
106 #define COLOR16_REG_DATA_10_L 0xA9
107 #define COLOR16_REG_DATA_10_H 0xAA
108 #define COLOR16_REG_DATA_11_L 0xAB
109 #define COLOR16_REG_DATA_11_H 0xAC
110 #define COLOR16_REG_DATA_12_L 0xAD
111 #define COLOR16_REG_DATA_12_H 0xAE
112 #define COLOR16_REG_DATA_13_L 0xAF
113 #define COLOR16_REG_DATA_13_H 0xB0
114 #define COLOR16_REG_DATA_14_L 0xB1
115 #define COLOR16_REG_DATA_14_H 0xB2
116 #define COLOR16_REG_DATA_15_L 0xB3
117 #define COLOR16_REG_DATA_15_H 0xB4
118 #define COLOR16_REG_DATA_16_L 0xB5
119 #define COLOR16_REG_DATA_16_H 0xB6
120 #define COLOR16_REG_DATA_17_L 0xB7
121 #define COLOR16_REG_DATA_17_H 0xB8
122 #define COLOR16_REG_STATUS_2 0x90
123 #define COLOR16_REG_STATUS_3 0x91
124 #define COLOR16_REG_STATUS_5 0xBB
125 #define COLOR16_REG_STATUS_4 0xBC
126 #define COLOR16_REG_CFG_0 0xBF
127 #define COLOR16_REG_CFG_1 0xC6
128 #define COLOR16_REG_CFG_3 0xC7
129 #define COLOR16_REG_CFG_6 0xF5
130 #define COLOR16_REG_CFG_8 0xC9
131 #define COLOR16_REG_CFG_9 0xCA
132 #define COLOR16_REG_CFG_10 0x65
133 #define COLOR16_REG_PERS 0xCF
134 #define COLOR16_REG_GPIO 0x6B
135 #define COLOR16_REG_ASTEP_LSB 0xD4
136 #define COLOR16_REG_ASTEP_MSB 0xD5
137 #define COLOR16_REG_CFG_20 0xD6
138 #define COLOR16_REG_LED 0xCD
139 #define COLOR16_REG_AGC_GAIN_MAX 0xD7
140 #define COLOR16_REG_AZ_CONFIG 0xDE
141 #define COLOR16_REG_FD_TIME_1 0xE0
142 #define COLOR16_REG_FD_TIME_2 0xE2
143 #define COLOR16_REG_FD_CFG_0 0xDF
144 #define COLOR16_REG_FD_STATUS 0xE3
145 #define COLOR16_REG_INTENAB 0xF9
146 #define COLOR16_REG_CONTROL 0xFA
147 #define COLOR16_REG_FIFO_MAP 0xFC
148 #define COLOR16_REG_FIFO_LVL 0xFD
149 #define COLOR16_REG_FDATA_L 0xFE
150 #define COLOR16_REG_FDATA_H 0xFF
168 #define COLOR16_ENABLE_FDEN 0x40
169 #define COLOR16_ENABLE_SMUXEN 0x10
170 #define COLOR16_ENABLE_WEN 0x08
171 #define COLOR16_ENABLE_SP_EN 0x02
172 #define COLOR16_ENABLE_PON 0x01
173 #define COLOR16_ENABLE_POFF 0x00
179 #define COLOR16_CFG_0_LOW_POWER 0x20
180 #define COLOR16_CFG_0_REG_BANK 0x10
181 #define COLOR16_CFG_0_WLONG 0x04
187 #define COLOR16_CFG_1_AGAIN_0p5 0x00
188 #define COLOR16_CFG_1_AGAIN_1 0x01
189 #define COLOR16_CFG_1_AGAIN_2 0x02
190 #define COLOR16_CFG_1_AGAIN_4 0x03
191 #define COLOR16_CFG_1_AGAIN_8 0x04
192 #define COLOR16_CFG_1_AGAIN_16 0x05
193 #define COLOR16_CFG_1_AGAIN_32 0x06
194 #define COLOR16_CFG_1_AGAIN_64 0x07
195 #define COLOR16_CFG_1_AGAIN_128 0x08
196 #define COLOR16_CFG_1_AGAIN_256 0x09
197 #define COLOR16_CFG_1_AGAIN_512 0x0A
198 #define COLOR16_CFG_1_AGAIN_1024 0x0B
199 #define COLOR16_CFG_1_AGAIN_2048 0x0C
200 #define COLOR16_CFG_1_AGAIN_MASK 0x1F
206 #define COLOR16_CFG_20_FD_FIFO_8BIT 0x80
207 #define COLOR16_CFG_20_AUTO_SMUX_6CH 0x00
208 #define COLOR16_CFG_20_AUTO_SMUX_12CH 0x40
209 #define COLOR16_CFG_20_AUTO_SMUX_18CH 0x60
210 #define COLOR16_CFG_20_AUTO_SMUX_MASK 0x60
216 #define COLOR16_CONTROL_SW_RESET 0x08
217 #define COLOR16_CONTROL_SP_MAN_AZ 0x04
218 #define COLOR16_CONTROL_FIFO_CLR 0x02
219 #define COLOR16_CONTROL_CLEAR_SAI_ACT 0x01
225 #define COLOR16_LED_OFF 0x00
226 #define COLOR16_LED_ON 0x80
227 #define COLOR16_LED_DRIVE_CURR_MIN 4
228 #define COLOR16_LED_DRIVE_CURR_MAX 258
229 #define COLOR16_LED_DRIVE_CURR_STEP 2
230 #define COLOR16_LED_DRIVE_CURR_DEFAULT 8
236 #define COLOR16_STATUS_ASAT 0x80
237 #define COLOR16_STATUS_AINT 0x08
238 #define COLOR16_STATUS_FINT 0x04
239 #define COLOR16_STATUS_SINT 0x01
245 #define COLOR16_ASTATUS_ASAT 0x80
246 #define COLOR16_ASTATUS_AGAIN_MASK 0x0F
252 #define COLOR16_STATUS_2_AVALID 0x40
253 #define COLOR16_STATUS_2_ASAT_DIG 0x10
254 #define COLOR16_STATUS_2_ASAT_ANA 0x08
255 #define COLOR16_STATUS_2_FDSAT_ANA 0x02
256 #define COLOR16_STATUS_2_FDSAT_DIG 0x01
262 #define COLOR16_DEVICE_ID 0x81
268 #define COLOR16_ACCESS_REG_BANK_ABOVE_80H 0
269 #define COLOR16_ACCESS_REG_BANK_20H_7FH 1
275 #define COLOR16_SINGLE_STEP_MS 0.00278f
276 #define COLOR16_ATIME_MAX 255
277 #define COLOR16_ASTEP_MAX 65534
278 #define COLOR16_INTEGRATION_TIME_MAX ( ( float ) ( COLOR16_ATIME_MAX + 1 ) * ( COLOR16_ASTEP_MAX + 1 ) * COLOR16_SINGLE_STEP_MS )
279 #define COLOR16_INTEGRATION_TIME_MIN COLOR16_SINGLE_STEP_MS
280 #define COLOR16_INTEGRATION_TIME_DEFAULT 90.0f
281 #define COLOR16_WAIT_STEP_MS 2.78f
282 #define COLOR16_WTIME_MAX 255
283 #define COLOR16_WAIT_TIME_MAX ( ( float ) ( COLOR16_WTIME_MAX + 1 ) * COLOR16_WAIT_STEP_MS )
284 #define COLOR16_WAIT_TIME_MIN COLOR16_WAIT_STEP_MS
285 #define COLOR16_WAIT_TIME_DEFAULT 100.0f
292 #define COLOR16_DEVICE_ADDRESS 0x39
310 #define COLOR16_MAP_MIKROBUS( cfg, mikrobus ) \
311 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
312 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
313 cfg.ldr = MIKROBUS( mikrobus, MIKROBUS_AN ); \
314 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
uint16_t ch_fd_3
Definition: color16.h:344
err_t color16_read_register(color16_t *ctx, uint8_t reg, uint8_t *data_out)
Color 16 read register function.
@ COLOR16_ERROR
Definition: color16.h:392
pin_name_t ldr
Definition: color16.h:377
uint8_t status
Definition: color16.h:325
digital_out_t ldr
Definition: color16.h:355
Color 16 Click configuration object.
Definition: color16.h:373
uint16_t ch_f3
Definition: color16.h:334
i2c_master_t i2c
Definition: color16.h:361
digital_in_t int_pin
Definition: color16.h:358
err_t color16_generic_read(color16_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Color 16 I2C reading function.
uint32_t i2c_speed
Definition: color16.h:380
err_t color16_read_data(color16_t *ctx, color16_data_t *data_out)
Color 16 read data function.
pin_name_t scl
Definition: color16.h:374
uint16_t ch_fxl
Definition: color16.h:329
err_t color16_set_reg_bank_access(color16_t *ctx, uint8_t reg_bank)
Color 16 set reg bank access function.
err_t color16_generic_write(color16_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Color 16 I2C writing function.
pin_name_t int_pin
Definition: color16.h:378
err_t color16_enable_ext_led(color16_t *ctx, uint8_t led_curr)
Color 16 enable ext led function.
err_t color16_read_register_word(color16_t *ctx, uint8_t reg, uint16_t *data_out)
Color 16 read register word function.
uint8_t i2c_address
Definition: color16.h:381
Color 16 Click data object.
Definition: color16.h:324
void color16_set_ldr_pin(color16_t *ctx, uint8_t state)
Color 16 set ldr pin function.
err_t color16_init(color16_t *ctx, color16_cfg_t *cfg)
Color 16 initialization function.
uint16_t ch_2x_vis_2
Definition: color16.h:337
uint16_t ch_f4
Definition: color16.h:335
err_t color16_set_integration_time_ms(color16_t *ctx, float int_time_ms)
Color 16 set integration time ms function.
err_t color16_write_register(color16_t *ctx, uint8_t reg, uint8_t data_in)
Color 16 write register function.
uint16_t ch_f6
Definition: color16.h:336
uint16_t ch_f2
Definition: color16.h:333
uint8_t slave_address
Definition: color16.h:364
Color 16 Click context object.
Definition: color16.h:353
uint8_t color16_get_int_pin(color16_t *ctx)
Color 16 get int pin function.
color16_return_value_t
Color 16 Click return value data.
Definition: color16.h:390
uint16_t ch_fd_1
Definition: color16.h:332
@ COLOR16_OK
Definition: color16.h:391
uint16_t ch_f7
Definition: color16.h:341
err_t color16_disable_ext_led(color16_t *ctx)
Color 16 disable ext led function.
uint16_t ch_nir
Definition: color16.h:330
err_t color16_set_wait_time_ms(color16_t *ctx, float wait_time_ms)
Color 16 set wait time ms function.
pin_name_t sda
Definition: color16.h:375
err_t color16_check_communication(color16_t *ctx)
Color 16 check communication function.
uint16_t ch_f8
Definition: color16.h:342
err_t color16_write_register_word(color16_t *ctx, uint8_t reg, uint16_t data_in)
Color 16 write register word function.
uint16_t ch_f5
Definition: color16.h:340
uint16_t ch_fz
Definition: color16.h:327
err_t color16_default_cfg(color16_t *ctx)
Color 16 default configuration function.
uint16_t ch_fy
Definition: color16.h:328
uint16_t ch_2x_vis_1
Definition: color16.h:331
uint16_t ch_fd_2
Definition: color16.h:338
void color16_cfg_setup(color16_cfg_t *cfg)
Color 16 configuration object setup function.
uint16_t ch_2x_vis_3
Definition: color16.h:343
uint8_t astatus
Definition: color16.h:326
uint16_t ch_f1
Definition: color16.h:339