LibDriver TCS34725
Loading...
Searching...
No Matches
driver_tcs34725_register_test.c
Go to the documentation of this file.
1
37
39#include <stdlib.h>
40
41static tcs34725_handle_t gs_handle;
42
51{
52 uint8_t res;
53 uint16_t reg_in, reg_out;
54 tcs34725_info_t info;
55 tcs34725_bool_t enable;
57 tcs34725_wait_time_t wait_time;
58 tcs34725_gain_t gain;
60
61 /* link interface function */
69
70 /* get chip information */
71 res = tcs34725_info(&info);
72 if (res != 0)
73 {
74 tcs34725_interface_debug_print("tcs34725: get info failed.\n");
75
76 return 1;
77 }
78 else
79 {
80 /* print chip information */
81 tcs34725_interface_debug_print("tcs34725: chip is %s.\n", info.chip_name);
82 tcs34725_interface_debug_print("tcs34725: manufacturer is %s.\n", info.manufacturer_name);
83 tcs34725_interface_debug_print("tcs34725: interface is %s.\n", info.interface);
84 tcs34725_interface_debug_print("tcs34725: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
85 tcs34725_interface_debug_print("tcs34725: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
86 tcs34725_interface_debug_print("tcs34725: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
87 tcs34725_interface_debug_print("tcs34725: max current is %0.2fmA.\n", info.max_current_ma);
88 tcs34725_interface_debug_print("tcs34725: max temperature is %0.1fC.\n", info.temperature_max);
89 tcs34725_interface_debug_print("tcs34725: min temperature is %0.1fC.\n", info.temperature_min);
90 }
91
92 /* tcs34725 init */
93 res = tcs34725_init(&gs_handle);
94 if (res != 0)
95 {
96 tcs34725_interface_debug_print("tcs34725: init failed.\n");
97
98 return 1;
99 }
100
101 /* start register */
102 tcs34725_interface_debug_print("tcs34725: start register test.\n");
103
104 /* tcs34725_set_rgbc_interrupt/tcs34725_get_rgbc_interrupt test */
105 tcs34725_interface_debug_print("tcs34725: tcs34725_set_rgbc_interrupt/tcs34725_get_rgbc_interrupt test.\n");
106
107 /* enable interrupt */
109 if (res != 0)
110 {
111 tcs34725_interface_debug_print("tcs34725: set rgbc interrupt failed.\n");
112 (void)tcs34725_deinit(&gs_handle);
113
114 return 1;
115 }
116 tcs34725_interface_debug_print("tcs34725: set rgbc interrupt enable.\n");
117 res = tcs34725_get_rgbc_interrupt(&gs_handle, &enable);
118 if (res != 0)
119 {
120 tcs34725_interface_debug_print("tcs34725: get rgbc interrupt failed.\n");
121 (void)tcs34725_deinit(&gs_handle);
122
123 return 1;
124 }
125 tcs34725_interface_debug_print("tcs34725: check rgbc interrupt %s.\n", enable==TCS34725_BOOL_TRUE?"ok":"error");
126
127 /* disable interrupt */
129 if (res != 0)
130 {
131 tcs34725_interface_debug_print("tcs34725: set rgbc interrupt failed.\n");
132 (void)tcs34725_deinit(&gs_handle);
133
134 return 1;
135 }
136 tcs34725_interface_debug_print("tcs34725: set rgbc interrupt disable.\n");
137 res = tcs34725_get_rgbc_interrupt(&gs_handle, &enable);
138 if (res != 0)
139 {
140 tcs34725_interface_debug_print("tcs34725: get rgbc interrupt failed.\n");
141 (void)tcs34725_deinit(&gs_handle);
142
143 return 1;
144 }
145 tcs34725_interface_debug_print("tcs34725: check rgbc interrupt %s.\n", enable==TCS34725_BOOL_FALSE?"ok":"error");
146
147 /* tcs34725_set_wait/tcs34725_get_wait test */
148 tcs34725_interface_debug_print("tcs34725: tcs34725_set_wait/tcs34725_get_wait test.\n");
149
150 /* enable wait */
151 res = tcs34725_set_wait(&gs_handle, TCS34725_BOOL_TRUE);
152 if (res != 0)
153 {
154 tcs34725_interface_debug_print("tcs34725: set wait failed.\n");
155 (void)tcs34725_deinit(&gs_handle);
156
157 return 1;
158 }
159 tcs34725_interface_debug_print("tcs34725: set wait enable.\n");
160 res = tcs34725_get_wait(&gs_handle, &enable);
161 if (res != 0)
162 {
163 tcs34725_interface_debug_print("tcs34725: get wait failed.\n");
164 (void)tcs34725_deinit(&gs_handle);
165
166 return 1;
167 }
168 tcs34725_interface_debug_print("tcs34725: check wait %s.\n", enable==TCS34725_BOOL_TRUE?"ok":"error");
169
170 /* disable wait */
171 res = tcs34725_set_wait(&gs_handle, TCS34725_BOOL_FALSE);
172 if (res != 0)
173 {
174 tcs34725_interface_debug_print("tcs34725: set wait failed.\n");
175 (void)tcs34725_deinit(&gs_handle);
176
177 return 1;
178 }
179 tcs34725_interface_debug_print("tcs34725: set wait disable.\n");
180 res = tcs34725_get_wait(&gs_handle, &enable);
181 if (res != 0)
182 {
183 tcs34725_interface_debug_print("tcs34725: get wait failed.\n");
184 (void)tcs34725_deinit(&gs_handle);
185
186 return 1;
187 }
188 tcs34725_interface_debug_print("tcs34725: check wait %s.\n", enable==TCS34725_BOOL_FALSE?"ok":"error");
189
190 /* tcs34725_set_rgbc/tcs34725_get_rgbc test */
191 tcs34725_interface_debug_print("tcs34725: tcs34725_set_rgbc/tcs34725_get_rgbc test.\n");
192
193 /* enable rgbc */
194 res = tcs34725_set_rgbc(&gs_handle, TCS34725_BOOL_TRUE);
195 if (res != 0)
196 {
197 tcs34725_interface_debug_print("tcs34725: set rgbc failed.\n");
198 (void)tcs34725_deinit(&gs_handle);
199
200 return 1;
201 }
202 tcs34725_interface_debug_print("tcs34725: set rgbc enable.\n");
203 res = tcs34725_get_rgbc(&gs_handle, &enable);
204 if (res != 0)
205 {
206 tcs34725_interface_debug_print("tcs34725: get rgbc failed.\n");
207 (void)tcs34725_deinit(&gs_handle);
208
209 return 1;
210 }
211 tcs34725_interface_debug_print("tcs34725: check rgbc %s.\n", enable==TCS34725_BOOL_TRUE?"ok":"error");
212
213 /* disable rgbc */
214 res = tcs34725_set_rgbc(&gs_handle, TCS34725_BOOL_FALSE);
215 if (res != 0)
216 {
217 tcs34725_interface_debug_print("tcs34725: set rgbc failed.\n");
218 (void)tcs34725_deinit(&gs_handle);
219
220 return 1;
221 }
222 tcs34725_interface_debug_print("tcs34725: set rgbc disable.\n");
223 res = tcs34725_get_rgbc(&gs_handle, &enable);
224 if (res != 0)
225 {
226 tcs34725_interface_debug_print("tcs34725: get rgbc failed.\n");
227 (void)tcs34725_deinit(&gs_handle);
228
229 return 1;
230 }
231 tcs34725_interface_debug_print("tcs34725: check rgbc %s.\n", enable==TCS34725_BOOL_FALSE?"ok":"error");
232
233 /* tcs34725_set_power_on/tcs34725_get_power_on test */
234 tcs34725_interface_debug_print("tcs34725: tcs34725_set_power_on/tcs34725_get_power_on test.\n");
235
236 /* enable power on */
237 res = tcs34725_set_power_on(&gs_handle, TCS34725_BOOL_TRUE);
238 if (res != 0)
239 {
240 tcs34725_interface_debug_print("tcs34725: set power on failed.\n");
241 (void)tcs34725_deinit(&gs_handle);
242
243 return 1;
244 }
245 tcs34725_interface_debug_print("tcs34725: set power on enable.\n");
246 res = tcs34725_get_power_on(&gs_handle, &enable);
247 if (res != 0)
248 {
249 tcs34725_interface_debug_print("tcs34725: get power on failed.\n");
250 (void)tcs34725_deinit(&gs_handle);
251
252 return 1;
253 }
254 tcs34725_interface_debug_print("tcs34725: check power on %s.\n", enable==TCS34725_BOOL_TRUE?"ok":"error");
255
256 /* disable power on */
258 if (res != 0)
259 {
260 tcs34725_interface_debug_print("tcs34725: set power on failed.\n");
261 (void)tcs34725_deinit(&gs_handle);
262
263 return 1;
264 }
265 tcs34725_interface_debug_print("tcs34725: set power on disable.\n");
266 res = tcs34725_get_power_on(&gs_handle, &enable);
267 if (res != 0)
268 {
269 tcs34725_interface_debug_print("tcs34725: get power on failed.\n");
270 (void)tcs34725_deinit(&gs_handle);
271
272 return 1;
273 }
274 tcs34725_interface_debug_print("tcs34725: check power on %s.\n", enable==TCS34725_BOOL_FALSE?"ok":"error");
275
276 /* tcs34725_set_rgbc_integration_time/tcs34725_get_rgbc_integration_time test */
277 tcs34725_interface_debug_print("tcs34725: tcs34725_set_rgbc_integration_time/tcs34725_get_rgbc_integration_time test.\n");
278
279 /* set integration time 2.4ms */
281 if (res != 0)
282 {
283 tcs34725_interface_debug_print("tcs34725: set rgbc integration time failed.\n");
284 (void)tcs34725_deinit(&gs_handle);
285
286 return 1;
287 }
288 tcs34725_interface_debug_print("tcs34725: set rgbc integration time 2.4ms.\n");
289 res = tcs34725_get_rgbc_integration_time(&gs_handle, &t);
290 if (res != 0)
291 {
292 tcs34725_interface_debug_print("tcs34725: get rgbc integration time failed.\n");
293 (void)tcs34725_deinit(&gs_handle);
294
295 return 1;
296 }
297 tcs34725_interface_debug_print("tcs34725: check rgbc integration time %s.\n", t==TCS34725_INTEGRATION_TIME_2P4MS?"ok":"error");
298
299 /* set integration time 24ms */
301 if (res != 0)
302 {
303 tcs34725_interface_debug_print("tcs34725: set rgbc integration time failed.\n");
304 (void)tcs34725_deinit(&gs_handle);
305
306 return 1;
307 }
308
309 /* set integration time 24ms */
310 tcs34725_interface_debug_print("tcs34725: set rgbc integration time 24ms.\n");
311 res = tcs34725_get_rgbc_integration_time(&gs_handle, &t);
312 if (res != 0)
313 {
314 tcs34725_interface_debug_print("tcs34725: get rgbc integration time failed.\n");
315 (void)tcs34725_deinit(&gs_handle);
316
317 return 1;
318 }
319 tcs34725_interface_debug_print("tcs34725: check rgbc integration time %s.\n", t==TCS34725_INTEGRATION_TIME_24MS?"ok":"error");
320
321 /* set integration time 50ms */
323 if (res != 0)
324 {
325 tcs34725_interface_debug_print("tcs34725: set rgbc integration time failed.\n");
326 (void)tcs34725_deinit(&gs_handle);
327
328 return 1;
329 }
330 tcs34725_interface_debug_print("tcs34725: set rgbc integration time 50ms.\n");
331 res = tcs34725_get_rgbc_integration_time(&gs_handle, &t);
332 if (res != 0)
333 {
334 tcs34725_interface_debug_print("tcs34725: get rgbc integration time failed.\n");
335 (void)tcs34725_deinit(&gs_handle);
336
337 return 1;
338 }
339 tcs34725_interface_debug_print("tcs34725: check rgbc integration time %s.\n", t==TCS34725_INTEGRATION_TIME_50MS?"ok":"error");
340
341 /* set integration time 101ms */
343 if (res != 0)
344 {
345 tcs34725_interface_debug_print("tcs34725: set rgbc integration time failed.\n");
346 (void)tcs34725_deinit(&gs_handle);
347
348 return 1;
349 }
350 tcs34725_interface_debug_print("tcs34725: set rgbc integration time 101ms.\n");
351 res = tcs34725_get_rgbc_integration_time(&gs_handle, &t);
352 if (res != 0)
353 {
354 tcs34725_interface_debug_print("tcs34725: get rgbc integration time failed.\n");
355 (void)tcs34725_deinit(&gs_handle);
356
357 return 1;
358 }
359 tcs34725_interface_debug_print("tcs34725: check rgbc integration time %s.\n", t==TCS34725_INTEGRATION_TIME_101MS?"ok":"error");
360
361 /* set integration time 154ms */
363 if (res != 0)
364 {
365 tcs34725_interface_debug_print("tcs34725: set rgbc integration time failed.\n");
366 (void)tcs34725_deinit(&gs_handle);
367
368 return 1;
369 }
370 tcs34725_interface_debug_print("tcs34725: set rgbc integration time 154ms.\n");
371 res = tcs34725_get_rgbc_integration_time(&gs_handle, &t);
372 if (res != 0)
373 {
374 tcs34725_interface_debug_print("tcs34725: get rgbc integration time failed.\n");
375 (void)tcs34725_deinit(&gs_handle);
376
377 return 1;
378 }
379 tcs34725_interface_debug_print("tcs34725: check rgbc integration time %s.\n", t==TCS34725_INTEGRATION_TIME_154MS?"ok":"error");
380
381 /* set integration time 700ms */
383 if (res != 0)
384 {
385 tcs34725_interface_debug_print("tcs34725: set rgbc integration time failed.\n");
386 (void)tcs34725_deinit(&gs_handle);
387
388 return 1;
389 }
390 tcs34725_interface_debug_print("tcs34725: set rgbc integration time 700ms.\n");
391 res = tcs34725_get_rgbc_integration_time(&gs_handle, &t);
392 if (res != 0)
393 {
394 tcs34725_interface_debug_print("tcs34725: get rgbc integration time failed.\n");
395 (void)tcs34725_deinit(&gs_handle);
396
397 return 1;
398 }
399 tcs34725_interface_debug_print("tcs34725: check rgbc integration time %s.\n", t==TCS34725_INTEGRATION_TIME_700MS?"ok":"error");
400
401 /* tcs34725_set_wait_time/tcs34725_get_wait_time test */
402 tcs34725_interface_debug_print("tcs34725: tcs34725_set_wait_time/tcs34725_get_wait_time test.\n");
403
404 /* set wait time 2.4ms */
406 if (res != 0)
407 {
408 tcs34725_interface_debug_print("tcs34725: set wait time failed.\n");
409 (void)tcs34725_deinit(&gs_handle);
410
411 return 1;
412 }
413 tcs34725_interface_debug_print("tcs34725: set wait time 2.4ms.\n");
414 res = tcs34725_get_wait_time(&gs_handle, &wait_time);
415 if (res != 0)
416 {
417 tcs34725_interface_debug_print("tcs34725: get wait time failed.\n");
418 (void)tcs34725_deinit(&gs_handle);
419
420 return 1;
421 }
422 tcs34725_interface_debug_print("tcs34725: check wait time %s.\n", wait_time==TCS34725_WAIT_TIME_2P4MS?"ok":"error");
423
424 /* set wait time 204ms */
426 if (res != 0)
427 {
428 tcs34725_interface_debug_print("tcs34725: set wait time failed.\n");
429 (void)tcs34725_deinit(&gs_handle);
430
431 return 1;
432 }
433 tcs34725_interface_debug_print("tcs34725: set wait time 204ms.\n");
434 res = tcs34725_get_wait_time(&gs_handle, &wait_time);
435 if (res != 0)
436 {
437 tcs34725_interface_debug_print("tcs34725: get wait time failed.\n");
438 (void)tcs34725_deinit(&gs_handle);
439
440 return 1;
441 }
442 tcs34725_interface_debug_print("tcs34725: check wait time %s.\n", wait_time==TCS34725_WAIT_TIME_204MS?"ok":"error");
443
444 /* set wait time 614ms */
446 if (res != 0)
447 {
448 tcs34725_interface_debug_print("tcs34725: set wait time failed.\n");
449 (void)tcs34725_deinit(&gs_handle);
450
451 return 1;
452 }
453 tcs34725_interface_debug_print("tcs34725: set wait time 614ms.\n");
454 res = tcs34725_get_wait_time(&gs_handle, &wait_time);
455 if (res != 0)
456 {
457 tcs34725_interface_debug_print("tcs34725: get wait time failed.\n");
458 (void)tcs34725_deinit(&gs_handle);
459
460 return 1;
461 }
462 tcs34725_interface_debug_print("tcs34725: check wait time %s.\n", wait_time==TCS34725_WAIT_TIME_614MS?"ok":"error");
463
464 /* set wait time 29ms */
466 if (res != 0)
467 {
468 tcs34725_interface_debug_print("tcs34725: set wait time failed.\n");
469 (void)tcs34725_deinit(&gs_handle);
470
471 return 1;
472 }
473 tcs34725_interface_debug_print("tcs34725: set wait time 29ms.\n");
474 res = tcs34725_get_wait_time(&gs_handle, &wait_time);
475 if (res != 0)
476 {
477 tcs34725_interface_debug_print("tcs34725: get wait time failed.\n");
478 (void)tcs34725_deinit(&gs_handle);
479
480 return 1;
481 }
482 tcs34725_interface_debug_print("tcs34725: check wait time %s.\n", wait_time==TCS34725_WAIT_TIME_29MS?"ok":"error");
483
484 /* set wait time 2450ms */
486 if (res != 0)
487 {
488 tcs34725_interface_debug_print("tcs34725: set wait time failed.\n");
489 (void)tcs34725_deinit(&gs_handle);
490
491 return 1;
492 }
493 tcs34725_interface_debug_print("tcs34725: set wait time 2450ms.\n");
494 res = tcs34725_get_wait_time(&gs_handle, &wait_time);
495 if (res != 0)
496 {
497 tcs34725_interface_debug_print("tcs34725: get wait time failed.\n");
498 (void)tcs34725_deinit(&gs_handle);
499
500 return 1;
501 }
502 tcs34725_interface_debug_print("tcs34725: check wait time %s.\n", wait_time==TCS34725_WAIT_TIME_2450MS?"ok":"error");
503
504 /* set wait time 7400ms */
506 if (res != 0)
507 {
508 tcs34725_interface_debug_print("tcs34725: set wait time failed.\n");
509 (void)tcs34725_deinit(&gs_handle);
510
511 return 1;
512 }
513 tcs34725_interface_debug_print("tcs34725: set wait time 7400ms.\n");
514 res = tcs34725_get_wait_time(&gs_handle, &wait_time);
515 if (res != 0)
516 {
517 tcs34725_interface_debug_print("tcs34725: get wait time failed.\n");
518 (void)tcs34725_deinit(&gs_handle);
519
520 return 1;
521 }
522 tcs34725_interface_debug_print("tcs34725: check wait time %s.\n", wait_time==TCS34725_WAIT_TIME_7400MS?"ok":"error");
523
524 /* tcs34725_set_rgbc_clear_low_interrupt_threshold/tcs34725_get_rgbc_clear_low_interrupt_threshold test */
525 tcs34725_interface_debug_print("tcs34725: tcs34725_set_rgbc_clear_low_interrupt_threshold/tcs34725_get_rgbc_clear_low_interrupt_threshold test.\n");
526 reg_in = rand()%65535;
527 res = tcs34725_set_rgbc_clear_low_interrupt_threshold(&gs_handle, reg_in);
528 if (res != 0)
529 {
530 tcs34725_interface_debug_print("tcs34725: set rgbc clear low interrupt threshold failed.\n");
531 (void)tcs34725_deinit(&gs_handle);
532
533 return 1;
534 }
535 tcs34725_interface_debug_print("tcs34725: set rgbc clear low interrupt threshold 0x%04X.\n", reg_in);
536 res = tcs34725_get_rgbc_clear_low_interrupt_threshold(&gs_handle, (uint16_t *)&reg_out);
537 if (res != 0)
538 {
539 tcs34725_interface_debug_print("tcs34725: get rgbc clear low interrupt threshold failed.\n");
540 (void)tcs34725_deinit(&gs_handle);
541
542 return 1;
543 }
544 tcs34725_interface_debug_print("tcs34725: check rgbc clear low interrupt threshold %s.\n", reg_in==reg_out?"ok":"error");
545
546 /* tcs34725_set_rgbc_clear_high_interrupt_threshold/tcs34725_get_rgbc_clear_high_interrupt_threshold test */
547 tcs34725_interface_debug_print("tcs34725: tcs34725_set_rgbc_clear_high_interrupt_threshold/tcs34725_get_rgbc_clear_high_interrupt_threshold test.\n");
548 reg_in = rand()%65535;
549 res = tcs34725_set_rgbc_clear_high_interrupt_threshold(&gs_handle, reg_in);
550 if (res != 0)
551 {
552 tcs34725_interface_debug_print("tcs34725: set rgbc clear high interrupt threshold failed.\n");
553 (void)tcs34725_deinit(&gs_handle);
554
555 return 1;
556 }
557 tcs34725_interface_debug_print("tcs34725: set rgbc clear high interrupt threshold 0x%04X.\n", reg_in);
558 res = tcs34725_get_rgbc_clear_high_interrupt_threshold(&gs_handle, (uint16_t *)&reg_out);
559 if (res != 0)
560 {
561 tcs34725_interface_debug_print("tcs34725: get rgbc clear high interrupt threshold failed.\n");
562 (void)tcs34725_deinit(&gs_handle);
563
564 return 1;
565 }
566 tcs34725_interface_debug_print("tcs34725: check rgbc clear high interrupt threshold %s.\n", reg_in==reg_out?"ok":"error");
567
568 /* tcs34725_set_gain/tcs34725_get_gain test */
569 tcs34725_interface_debug_print("tcs34725: tcs34725_set_gain/tcs34725_get_gain test.\n");
570
571 /* set gain 1x */
572 res = tcs34725_set_gain(&gs_handle, TCS34725_GAIN_1X);
573 if (res != 0)
574 {
575 tcs34725_interface_debug_print("tcs34725: set gain failed.\n");
576 (void)tcs34725_deinit(&gs_handle);
577
578 return 1;
579 }
580 tcs34725_interface_debug_print("tcs34725: set gain 1x.\n");
581 res = tcs34725_get_gain(&gs_handle, &gain);
582 if (res != 0)
583 {
584 tcs34725_interface_debug_print("tcs34725: get gain failed.\n");
585 (void)tcs34725_deinit(&gs_handle);
586
587 return 1;
588 }
589 tcs34725_interface_debug_print("tcs34725: check gain %s.\n", gain==TCS34725_GAIN_1X?"ok":"error");
590
591 /* set gain 4x */
592 res = tcs34725_set_gain(&gs_handle, TCS34725_GAIN_4X);
593 if (res != 0)
594 {
595 tcs34725_interface_debug_print("tcs34725: set gain failed.\n");
596 (void)tcs34725_deinit(&gs_handle);
597
598 return 1;
599 }
600 tcs34725_interface_debug_print("tcs34725: set gain 4x.\n");
601 res = tcs34725_get_gain(&gs_handle, &gain);
602 if (res != 0)
603 {
604 tcs34725_interface_debug_print("tcs34725: get gain failed.\n");
605 (void)tcs34725_deinit(&gs_handle);
606
607 return 1;
608 }
609 tcs34725_interface_debug_print("tcs34725: check gain %s.\n", gain==TCS34725_GAIN_4X?"ok":"error");
610
611 /* set gain 16x */
612 res = tcs34725_set_gain(&gs_handle, TCS34725_GAIN_16X);
613 if (res != 0)
614 {
615 tcs34725_interface_debug_print("tcs34725: set gain failed.\n");
616 (void)tcs34725_deinit(&gs_handle);
617
618 return 1;
619 }
620 tcs34725_interface_debug_print("tcs34725: set gain 16x.\n");
621 res = tcs34725_get_gain(&gs_handle, &gain);
622 if (res != 0)
623 {
624 tcs34725_interface_debug_print("tcs34725: get gain failed.\n");
625 (void)tcs34725_deinit(&gs_handle);
626
627 return 1;
628 }
629 tcs34725_interface_debug_print("tcs34725: check gain %s.\n", gain==TCS34725_GAIN_16X?"ok":"error");
630
631 /* set gain 60x */
632 res = tcs34725_set_gain(&gs_handle, TCS34725_GAIN_60X);
633 if (res != 0)
634 {
635 tcs34725_interface_debug_print("tcs34725: set gain failed.\n");
636 (void)tcs34725_deinit(&gs_handle);
637
638 return 1;
639 }
640 tcs34725_interface_debug_print("tcs34725: set gain 60x.\n");
641 res = tcs34725_get_gain(&gs_handle, &gain);
642 if (res != 0)
643 {
644 tcs34725_interface_debug_print("tcs34725: get gain failed.\n");
645 (void)tcs34725_deinit(&gs_handle);
646
647 return 1;
648 }
649 tcs34725_interface_debug_print("tcs34725: check gain %s.\n", gain==TCS34725_GAIN_60X?"ok":"error");
650
651 /* tcs34725_set_interrupt_mode/tcs34725_get_interrupt_mode test */
652 tcs34725_interface_debug_print("tcs34725: tcs34725_set_interrupt_mode/tcs34725_get_interrupt_mode test.\n");
653
654 /* set interrupt mode every rgbc cycle */
656 if (res != 0)
657 {
658 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
659 (void)tcs34725_deinit(&gs_handle);
660
661 return 1;
662 }
663 tcs34725_interface_debug_print("tcs34725: set interrupt mode every rgbc cycle.\n");
664 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
665 if (res != 0)
666 {
667 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
668 (void)tcs34725_deinit(&gs_handle);
669
670 return 1;
671 }
672 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_EVERY_RGBC_CYCLE?"ok":"error");
673
674 /* set interrupt mode 1 clear out of threshold */
676 if (res != 0)
677 {
678 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
679 (void)tcs34725_deinit(&gs_handle);
680
681 return 1;
682 }
683 tcs34725_interface_debug_print("tcs34725: set interrupt mode 1 clear out of threshold.\n");
684 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
685 if (res != 0)
686 {
687 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
688 (void)tcs34725_deinit(&gs_handle);
689
690 return 1;
691 }
692 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_1_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
693
694 /* set interrupt mode 2 clear out of threshold */
696 if (res != 0)
697 {
698 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
699 (void)tcs34725_deinit(&gs_handle);
700
701 return 1;
702 }
703 tcs34725_interface_debug_print("tcs34725: set interrupt mode 2 clear out of threshold.\n");
704 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
705 if (res != 0)
706 {
707 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
708 (void)tcs34725_deinit(&gs_handle);
709
710 return 1;
711 }
712 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_2_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
713
714 /* set interrupt mode 3 clear out of threshold */
716 if (res != 0)
717 {
718 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
719 (void)tcs34725_deinit(&gs_handle);
720
721 return 1;
722 }
723 tcs34725_interface_debug_print("tcs34725: set interrupt mode 3 clear out of threshold.\n");
724 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
725 if (res != 0)
726 {
727 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
728 (void)tcs34725_deinit(&gs_handle);
729
730 return 1;
731 }
732 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_3_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
733
734 /* set interrupt mode 5 clear out of threshold */
736 if (res != 0)
737 {
738 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
739 (void)tcs34725_deinit(&gs_handle);
740
741 return 1;
742 }
743 tcs34725_interface_debug_print("tcs34725: set interrupt mode 5 clear out of threshold.\n");
744 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
745 if (res != 0)
746 {
747 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
748 (void)tcs34725_deinit(&gs_handle);
749
750 return 1;
751 }
752 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_5_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
753
754 /* set interrupt mode 10 clear out of threshold */
756 if (res != 0)
757 {
758 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
759 (void)tcs34725_deinit(&gs_handle);
760
761 return 1;
762 }
763 tcs34725_interface_debug_print("tcs34725: set interrupt mode 10 clear out of threshold.\n");
764 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
765 if (res != 0)
766 {
767 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
768 (void)tcs34725_deinit(&gs_handle);
769
770 return 1;
771 }
772 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_10_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
773
774 /* set interrupt mode 15 clear out of threshold */
776 if (res != 0)
777 {
778 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
779 (void)tcs34725_deinit(&gs_handle);
780
781 return 1;
782 }
783 tcs34725_interface_debug_print("tcs34725: set interrupt mode 15 clear out of threshold.\n");
784 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
785 if (res != 0)
786 {
787 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
788 (void)tcs34725_deinit(&gs_handle);
789
790 return 1;
791 }
792 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_15_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
793
794 /* set interrupt mode 20 clear out of threshold */
796 if (res != 0)
797 {
798 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
799 (void)tcs34725_deinit(&gs_handle);
800
801 return 1;
802 }
803 tcs34725_interface_debug_print("tcs34725: set interrupt mode 20 clear out of threshold.\n");
804 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
805 if (res != 0)
806 {
807 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
808 (void)tcs34725_deinit(&gs_handle);
809
810 return 1;
811 }
812 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_20_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
813
814 /* set interrupt mode 25 clear out of threshold */
816 if (res != 0)
817 {
818 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
819 (void)tcs34725_deinit(&gs_handle);
820
821 return 1;
822 }
823 tcs34725_interface_debug_print("tcs34725: set interrupt mode 25 clear out of threshold.\n");
824 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
825 if (res != 0)
826 {
827 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
828 (void)tcs34725_deinit(&gs_handle);
829
830 return 1;
831 }
832 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_25_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
833
834 /* set interrupt mode 30 clear out of threshold */
836 if (res != 0)
837 {
838 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
839 (void)tcs34725_deinit(&gs_handle);
840
841 return 1;
842 }
843 tcs34725_interface_debug_print("tcs34725: set interrupt mode 30 clear out of threshold.\n");
844 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
845 if (res != 0)
846 {
847 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
848 (void)tcs34725_deinit(&gs_handle);
849
850 return 1;
851 }
852 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_30_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
853
854 /* set interrupt mode 35 clear out of threshold */
856 if (res != 0)
857 {
858 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
859 (void)tcs34725_deinit(&gs_handle);
860
861 return 1;
862 }
863 tcs34725_interface_debug_print("tcs34725: set interrupt mode 35 clear out of threshold.\n");
864 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
865 if (res != 0)
866 {
867 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
868 (void)tcs34725_deinit(&gs_handle);
869
870 return 1;
871 }
872 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_35_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
873
874 /* set interrupt mode 40 clear out of threshold */
876 if (res != 0)
877 {
878 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
879 (void)tcs34725_deinit(&gs_handle);
880
881 return 1;
882 }
883 tcs34725_interface_debug_print("tcs34725: set interrupt mode 40 clear out of threshold.\n");
884 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
885 if (res != 0)
886 {
887 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
888 (void)tcs34725_deinit(&gs_handle);
889
890 return 1;
891 }
892 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_40_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
893
894 /* set interrupt mode 45 clear out of threshold */
896 if (res != 0)
897 {
898 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
899 (void)tcs34725_deinit(&gs_handle);
900
901 return 1;
902 }
903 tcs34725_interface_debug_print("tcs34725: set interrupt mode 45 clear out of threshold.\n");
904 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
905 if (res != 0)
906 {
907 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
908 (void)tcs34725_deinit(&gs_handle);
909
910 return 1;
911 }
912 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_45_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
913
914 /* set interrupt mode 50 clear out of threshold */
916 if (res != 0)
917 {
918 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
919 (void)tcs34725_deinit(&gs_handle);
920
921 return 1;
922 }
923 tcs34725_interface_debug_print("tcs34725: set interrupt mode 50 clear out of threshold.\n");
924 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
925 if (res != 0)
926 {
927 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
928 (void)tcs34725_deinit(&gs_handle);
929
930 return 1;
931 }
932 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_50_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
933
934 /* set interrupt mode 55 clear out of threshold */
936 if (res != 0)
937 {
938 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
939 (void)tcs34725_deinit(&gs_handle);
940
941 return 1;
942 }
943 tcs34725_interface_debug_print("tcs34725: set interrupt mode 55 clear out of threshold.\n");
944 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
945 if (res != 0)
946 {
947 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
948 (void)tcs34725_deinit(&gs_handle);
949
950 return 1;
951 }
952 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_55_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
953
954 /* set interrupt mode 60 clear out of threshold */
956 if (res != 0)
957 {
958 tcs34725_interface_debug_print("tcs34725: set interrupt mode failed.\n");
959 (void)tcs34725_deinit(&gs_handle);
960
961 return 1;
962 }
963 tcs34725_interface_debug_print("tcs34725: set interrupt mode 60 clear out of threshold.\n");
964 res = tcs34725_get_interrupt_mode(&gs_handle, &mode);
965 if (res != 0)
966 {
967 tcs34725_interface_debug_print("tcs34725: get interrupt mode failed.\n");
968 (void)tcs34725_deinit(&gs_handle);
969
970 return 1;
971 }
972 tcs34725_interface_debug_print("tcs34725: check interrupt mode %s.\n", mode==TCS34725_INTERRUPT_MODE_60_CLEAR_CHANNEL_OUT_OF_THRESHOLD?"ok":"error");
973
974 /* finish register test */
975 tcs34725_interface_debug_print("tcs34725: finish register test.\n");
976 (void)tcs34725_deinit(&gs_handle);
977
978 return 0;
979}
driver tcs34725 register test header file
uint8_t tcs34725_set_rgbc_integration_time(tcs34725_handle_t *handle, tcs34725_integration_time_t t)
set the rgbc adc integration time
uint8_t tcs34725_get_power_on(tcs34725_handle_t *handle, tcs34725_bool_t *enable)
get the power status
uint8_t tcs34725_deinit(tcs34725_handle_t *handle)
close the chip
struct tcs34725_info_s tcs34725_info_t
tcs34725 information structure definition
uint8_t tcs34725_set_gain(tcs34725_handle_t *handle, tcs34725_gain_t gain)
set the adc gain
uint8_t tcs34725_set_rgbc(tcs34725_handle_t *handle, tcs34725_bool_t enable)
enable or disable the rgbc adc
uint8_t tcs34725_set_wait_time(tcs34725_handle_t *handle, tcs34725_wait_time_t t)
set the wait time
tcs34725_bool_t
tcs34725 bool enumeration definition
uint8_t tcs34725_set_power_on(tcs34725_handle_t *handle, tcs34725_bool_t enable)
enable or disable the power
uint8_t tcs34725_get_wait_time(tcs34725_handle_t *handle, tcs34725_wait_time_t *t)
get the wait time
uint8_t tcs34725_get_wait(tcs34725_handle_t *handle, tcs34725_bool_t *enable)
get the wait time
uint8_t tcs34725_get_rgbc(tcs34725_handle_t *handle, tcs34725_bool_t *enable)
get the rgbc status
uint8_t tcs34725_info(tcs34725_info_t *info)
get chip information
uint8_t tcs34725_get_gain(tcs34725_handle_t *handle, tcs34725_gain_t *gain)
get the adc gain
struct tcs34725_handle_s tcs34725_handle_t
tcs34725 handle structure definition
tcs34725_wait_time_t
tcs34725 wait time enumeration definition
tcs34725_gain_t
tcs34725 gain enumeration definition
uint8_t tcs34725_init(tcs34725_handle_t *handle)
initialize the chip
tcs34725_integration_time_t
tcs34725 integration time enumeration definition
uint8_t tcs34725_set_wait(tcs34725_handle_t *handle, tcs34725_bool_t enable)
enable or disable the wait time
uint8_t tcs34725_get_rgbc_integration_time(tcs34725_handle_t *handle, tcs34725_integration_time_t *t)
get the rgbc adc integration time
@ TCS34725_BOOL_TRUE
@ TCS34725_BOOL_FALSE
@ TCS34725_WAIT_TIME_29MS
@ TCS34725_WAIT_TIME_2P4MS
@ TCS34725_WAIT_TIME_2450MS
@ TCS34725_WAIT_TIME_614MS
@ TCS34725_WAIT_TIME_7400MS
@ TCS34725_WAIT_TIME_204MS
@ TCS34725_GAIN_16X
@ TCS34725_GAIN_4X
@ TCS34725_GAIN_1X
@ TCS34725_GAIN_60X
@ TCS34725_INTEGRATION_TIME_700MS
@ TCS34725_INTEGRATION_TIME_50MS
@ TCS34725_INTEGRATION_TIME_24MS
@ TCS34725_INTEGRATION_TIME_101MS
@ TCS34725_INTEGRATION_TIME_2P4MS
@ TCS34725_INTEGRATION_TIME_154MS
void tcs34725_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t tcs34725_interface_iic_init(void)
interface iic bus init
uint8_t tcs34725_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t tcs34725_interface_iic_deinit(void)
interface iic bus deinit
uint8_t tcs34725_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void tcs34725_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t tcs34725_get_rgbc_clear_high_interrupt_threshold(tcs34725_handle_t *handle, uint16_t *threshold)
get the rgbc clear high interrupt threshold
tcs34725_interrupt_mode_t
tcs34725 interrupt mode enumeration definition
uint8_t tcs34725_set_rgbc_clear_high_interrupt_threshold(tcs34725_handle_t *handle, uint16_t threshold)
set the rgbc clear high interrupt threshold
uint8_t tcs34725_get_rgbc_clear_low_interrupt_threshold(tcs34725_handle_t *handle, uint16_t *threshold)
get the rgbc clear low interrupt threshold
uint8_t tcs34725_get_rgbc_interrupt(tcs34725_handle_t *handle, tcs34725_bool_t *enable)
get the rgbc interrupt
uint8_t tcs34725_get_interrupt_mode(tcs34725_handle_t *handle, tcs34725_interrupt_mode_t *mode)
get the interrupt mode
uint8_t tcs34725_set_rgbc_interrupt(tcs34725_handle_t *handle, tcs34725_bool_t enable)
enable or disable the rgbc interrupt
uint8_t tcs34725_set_rgbc_clear_low_interrupt_threshold(tcs34725_handle_t *handle, uint16_t threshold)
set the rgbc clear low interrupt threshold
uint8_t tcs34725_set_interrupt_mode(tcs34725_handle_t *handle, tcs34725_interrupt_mode_t mode)
set the interrupt mode
@ TCS34725_INTERRUPT_MODE_EVERY_RGBC_CYCLE
@ TCS34725_INTERRUPT_MODE_35_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_20_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_55_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_15_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_30_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_40_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_10_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_45_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_3_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_60_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_25_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_50_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_2_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_5_CLEAR_CHANNEL_OUT_OF_THRESHOLD
@ TCS34725_INTERRUPT_MODE_1_CLEAR_CHANNEL_OUT_OF_THRESHOLD
uint8_t tcs34725_register_test(void)
register test
char manufacturer_name[32]