LibDriver AMG8833
Loading...
Searching...
No Matches
driver_amg8833_register_test.c
Go to the documentation of this file.
1
36
38#include <stdlib.h>
39
40static amg8833_handle_t gs_handle;
41
51{
52 uint8_t res;
53 int16_t level, level_check;
54 float tmp, tmp_check;
55 uint8_t status;
56 uint8_t i, j;
57 uint8_t table[8][1];
58 amg8833_info_t info;
60 amg8833_mode_t mode;
61 amg8833_interrupt_mode_t interrupt_mode;
63 amg8833_bool_t enable;
65
66 /* link interface function */
75
76 /* get information */
77 res = amg8833_info(&info);
78 if (res != 0)
79 {
80 amg8833_interface_debug_print("amg8833: get info failed.\n");
81
82 return 1;
83 }
84 else
85 {
86 /* print chip info */
87 amg8833_interface_debug_print("amg8833: chip is %s.\n", info.chip_name);
88 amg8833_interface_debug_print("amg8833: manufacturer is %s.\n", info.manufacturer_name);
89 amg8833_interface_debug_print("amg8833: interface is %s.\n", info.interface);
90 amg8833_interface_debug_print("amg8833: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000 ) / 100);
91 amg8833_interface_debug_print("amg8833: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
92 amg8833_interface_debug_print("amg8833: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
93 amg8833_interface_debug_print("amg8833: max current is %0.2fmA.\n", info.max_current_ma);
94 amg8833_interface_debug_print("amg8833: max temperature is %0.1fC.\n", info.temperature_max);
95 amg8833_interface_debug_print("amg8833: min temperature is %0.1fC.\n", info.temperature_min);
96 }
97
98 /* start register test */
99 amg8833_interface_debug_print("amg8833: start register test.\n");
100
101 /* amg8833_set_addr_pin/amg8833_get_addr_pin test */
102 amg8833_interface_debug_print("amg8833: amg8833_set_addr_pin/amg8833_get_addr_pin test.\n");
103
104 /* address_0 */
105 res = amg8833_set_addr_pin(&gs_handle, AMG8833_ADDRESS_0);
106 if (res != 0)
107 {
108 amg8833_interface_debug_print("amg8833: set addr pin failed.\n");
109
110 return 1;
111 }
112 amg8833_interface_debug_print("amg8833: set addr pin address 0.\n");
113 res = amg8833_get_addr_pin(&gs_handle, &addr);
114 if (res != 0)
115 {
116 amg8833_interface_debug_print("amg8833: get addr pin failed.\n");
117
118 return 1;
119 }
120 amg8833_interface_debug_print("amg8833: check addr pin %s.\n", (addr == AMG8833_ADDRESS_0) ? "ok" : "error");
121
122 /* address_1 */
123 res = amg8833_set_addr_pin(&gs_handle, AMG8833_ADDRESS_1);
124 if (res != 0)
125 {
126 amg8833_interface_debug_print("amg8833: set addr pin failed.\n");
127
128 return 1;
129 }
130 amg8833_interface_debug_print("amg8833: set addr pin address 1.\n");
131 res = amg8833_get_addr_pin(&gs_handle, &addr);
132 if (res != 0)
133 {
134 amg8833_interface_debug_print("amg8833: get addr pin failed.\n");
135
136 return 1;
137 }
138 amg8833_interface_debug_print("amg8833: check addr pin %s.\n", (addr == AMG8833_ADDRESS_1) ? "ok" : "error");
139
140 /* set the address */
141 res = amg8833_set_addr_pin(&gs_handle, addr_pin);
142 if (res != 0)
143 {
144 amg8833_interface_debug_print("amg8833: set addr pin failed.\n");
145
146 return 1;
147 }
148
149 /* init */
150 res = amg8833_init(&gs_handle);
151 if (res != 0)
152 {
153 amg8833_interface_debug_print("amg8833: init failed.\n");
154
155 return 1;
156 }
157
158 /* amg8833_set_mode/amg8833_get_mode test */
159 amg8833_interface_debug_print("amg8833: amg8833_set_mode/amg8833_get_mode test.\n");
160
161 /* sleep mode */
162 res = amg8833_set_mode(&gs_handle, AMG8833_MODE_SLEEP);
163 if (res != 0)
164 {
165 amg8833_interface_debug_print("amg8833: set mode failed.\n");
166 (void)amg8833_deinit(&gs_handle);
167
168 return 1;
169 }
170 amg8833_interface_debug_print("amg8833: set sleep mode.\n");
172 res = amg8833_get_mode(&gs_handle, &mode);
173 if (res != 0)
174 {
175 amg8833_interface_debug_print("amg8833: get mode failed.\n");
176 (void)amg8833_deinit(&gs_handle);
177
178 return 1;
179 }
180 amg8833_interface_debug_print("amg8833: check mode %s.\n", (res == 0) ? "ok" : "error");
181
182 /* set normal mode */
183 res = amg8833_set_mode(&gs_handle, AMG8833_MODE_NORMAL);
184 if (res != 0)
185 {
186 amg8833_interface_debug_print("amg8833: set mode failed.\n");
187 (void)amg8833_deinit(&gs_handle);
188
189 return 1;
190 }
192
193 /* stand by 60s mode */
195 if (res != 0)
196 {
197 amg8833_interface_debug_print("amg8833: set mode failed.\n");
198 (void)amg8833_deinit(&gs_handle);
199
200 return 1;
201 }
202 amg8833_interface_debug_print("amg8833: set stand by 60s mode.\n");
203 res = amg8833_get_mode(&gs_handle, &mode);
204 if (res != 0)
205 {
206 amg8833_interface_debug_print("amg8833: get mode failed.\n");
207 (void)amg8833_deinit(&gs_handle);
208
209 return 1;
210 }
211 amg8833_interface_debug_print("amg8833: check mode %s.\n", (mode == AMG8833_MODE_STAND_BY_60S) ? "ok" : "error");
212
213 /* stand by 10s mode */
215 if (res != 0)
216 {
217 amg8833_interface_debug_print("amg8833: set mode failed.\n");
218 (void)amg8833_deinit(&gs_handle);
219
220 return 1;
221 }
222 amg8833_interface_debug_print("amg8833: set stand by 10s mode.\n");
223 res = amg8833_get_mode(&gs_handle, &mode);
224 if (res != 0)
225 {
226 amg8833_interface_debug_print("amg8833: get mode failed.\n");
227 (void)amg8833_deinit(&gs_handle);
228
229 return 1;
230 }
231 amg8833_interface_debug_print("amg8833: check mode %s.\n", (mode == AMG8833_MODE_STAND_BY_10S) ? "ok" : "error");
232
233 /* normal mode */
234 res = amg8833_set_mode(&gs_handle, AMG8833_MODE_NORMAL);
235 if (res != 0)
236 {
237 amg8833_interface_debug_print("amg8833: set mode failed.\n");
238 (void)amg8833_deinit(&gs_handle);
239
240 return 1;
241 }
242 amg8833_interface_debug_print("amg8833: set normal mode.\n");
243 res = amg8833_get_mode(&gs_handle, &mode);
244 if (res != 0)
245 {
246 amg8833_interface_debug_print("amg8833: get mode failed.\n");
247 (void)amg8833_deinit(&gs_handle);
248
249 return 1;
250 }
251 amg8833_interface_debug_print("amg8833: check mode %s.\n", (mode == AMG8833_MODE_NORMAL) ? "ok" : "error");
252
253 /* amg8833_set_frame_rate/amg8833_get_frame_rate test */
254 amg8833_interface_debug_print("amg8833: amg8833_set_frame_rate/amg8833_get_frame_rate test.\n");
255
256 /* 10 fps */
258 if (res != 0)
259 {
260 amg8833_interface_debug_print("amg8833: set frame rate failed.\n");
261 (void)amg8833_deinit(&gs_handle);
262
263 return 1;
264 }
265 amg8833_interface_debug_print("amg8833: set 10 fps.\n");
266 res = amg8833_get_frame_rate(&gs_handle, &rate);
267 if (res != 0)
268 {
269 amg8833_interface_debug_print("amg8833: get frame rate failed.\n");
270 (void)amg8833_deinit(&gs_handle);
271
272 return 1;
273 }
274 amg8833_interface_debug_print("amg8833: check rate %s.\n", (rate == AMG8833_FRAME_RATE_10_FPS) ? "ok" : "error");
275
276 /* 1 fps */
278 if (res != 0)
279 {
280 amg8833_interface_debug_print("amg8833: set frame rate failed.\n");
281 (void)amg8833_deinit(&gs_handle);
282
283 return 1;
284 }
285 amg8833_interface_debug_print("amg8833: set 1 fps.\n");
286 res = amg8833_get_frame_rate(&gs_handle, &rate);
287 if (res != 0)
288 {
289 amg8833_interface_debug_print("amg8833: get frame rate failed.\n");
290 (void)amg8833_deinit(&gs_handle);
291
292 return 1;
293 }
294 amg8833_interface_debug_print("amg8833: check rate %s.\n", (rate == AMG8833_FRAME_RATE_1_FPS) ? "ok" : "error");
295
296 /* amg8833_set_interrupt_mode/amg8833_get_interrupt_mode test */
297 amg8833_interface_debug_print("amg8833: amg8833_set_interrupt_mode/amg8833_get_interrupt_mode test.\n");
298
299 /* diff */
301 if (res != 0)
302 {
303 amg8833_interface_debug_print("amg8833: set interrupt mode failed.\n");
304 (void)amg8833_deinit(&gs_handle);
305
306 return 1;
307 }
308 amg8833_interface_debug_print("amg8833: set difference interrupt mode.\n");
309 res = amg8833_get_interrupt_mode(&gs_handle, &interrupt_mode);
310 if (res != 0)
311 {
312 amg8833_interface_debug_print("amg8833: get interrupt mode failed.\n");
313 (void)amg8833_deinit(&gs_handle);
314
315 return 1;
316 }
317 amg8833_interface_debug_print("amg8833: check interrupt mode %s.\n", (interrupt_mode == AMG8833_INTERRUPT_MODE_DIFFERENCE) ? "ok" : "error");
318
319 /* abs */
321 if (res != 0)
322 {
323 amg8833_interface_debug_print("amg8833: set interrupt mode failed.\n");
324 (void)amg8833_deinit(&gs_handle);
325
326 return 1;
327 }
328 amg8833_interface_debug_print("amg8833: set absolute value interrupt mode.\n");
329 res = amg8833_get_interrupt_mode(&gs_handle, &interrupt_mode);
330 if (res != 0)
331 {
332 amg8833_interface_debug_print("amg8833: get interrupt mode failed.\n");
333 (void)amg8833_deinit(&gs_handle);
334
335 return 1;
336 }
337 amg8833_interface_debug_print("amg8833: check interrupt mode %s.\n", (interrupt_mode == AMG8833_INTERRUPT_MODE_ABSOLUTE) ? "ok" : "error");
338
339 /* amg8833_set_interrupt/amg8833_get_interrupt test */
340 amg8833_interface_debug_print("amg8833: amg8833_set_interrupt/amg8833_get_interrupt test.\n");
341
342 /* disable */
343 res = amg8833_set_interrupt(&gs_handle, AMG8833_BOOL_FALSE);
344 if (res != 0)
345 {
346 amg8833_interface_debug_print("amg8833: set interrupt failed.\n");
347 (void)amg8833_deinit(&gs_handle);
348
349 return 1;
350 }
351 amg8833_interface_debug_print("amg8833: disable interrupt mode.\n");
352 res = amg8833_get_interrupt(&gs_handle, &enable);
353 if (res != 0)
354 {
355 amg8833_interface_debug_print("amg8833: get interrupt failed.\n");
356 (void)amg8833_deinit(&gs_handle);
357
358 return 1;
359 }
360 amg8833_interface_debug_print("amg8833: check interrupt %s.\n", (enable == AMG8833_BOOL_FALSE) ? "ok" : "error");
361
362 /* enable */
363 res = amg8833_set_interrupt(&gs_handle, AMG8833_BOOL_TRUE);
364 if (res != 0)
365 {
366 amg8833_interface_debug_print("amg8833: set interrupt failed.\n");
367 (void)amg8833_deinit(&gs_handle);
368
369 return 1;
370 }
371 amg8833_interface_debug_print("amg8833: enable interrupt mode.\n");
372 res = amg8833_get_interrupt(&gs_handle, &enable);
373 if (res != 0)
374 {
375 amg8833_interface_debug_print("amg8833: get interrupt failed.\n");
376 (void)amg8833_deinit(&gs_handle);
377
378 return 1;
379 }
380 amg8833_interface_debug_print("amg8833: check interrupt %s.\n", (enable == AMG8833_BOOL_TRUE) ? "ok" : "error");
381
382 /* amg8833_set_average_mode/amg8833_get_average_mode test */
383 amg8833_interface_debug_print("amg8833: amg8833_set_average_mode/amg8833_get_average_mode test.\n");
384
385 /* once mode */
387 if (res != 0)
388 {
389 amg8833_interface_debug_print("amg8833: set average mode failed.\n");
390 (void)amg8833_deinit(&gs_handle);
391
392 return 1;
393 }
394 amg8833_interface_debug_print("amg8833: set once average mode.\n");
395 res = amg8833_get_average_mode(&gs_handle, &avg_mode);
396 if (res != 0)
397 {
398 amg8833_interface_debug_print("amg8833: get average mode failed.\n");
399 (void)amg8833_deinit(&gs_handle);
400
401 return 1;
402 }
403 amg8833_interface_debug_print("amg8833: check average mode %s.\n", (avg_mode == AMG8833_AVERAGE_MODE_ONCE) ? "ok" : "error");
404
405 /* twice mode */
407 if (res != 0)
408 {
409 amg8833_interface_debug_print("amg8833: set average mode failed.\n");
410 (void)amg8833_deinit(&gs_handle);
411
412 return 1;
413 }
414 amg8833_interface_debug_print("amg8833: set twice average mode.\n");
415 res = amg8833_get_average_mode(&gs_handle, &avg_mode);
416 if (res != 0)
417 {
418 amg8833_interface_debug_print("amg8833: get average mode failed.\n");
419 (void)amg8833_deinit(&gs_handle);
420
421 return 1;
422 }
423 amg8833_interface_debug_print("amg8833: check average mode %s.\n", (res == 0) ? "ok" : "error");
424
425 /* amg8833_set_interrupt_high_level/amg8833_get_interrupt_high_level test */
426 amg8833_interface_debug_print("amg8833: amg8833_set_interrupt_high_level/amg8833_get_interrupt_high_level test.\n");
427
428 level = rand() % 2048;
429 res = amg8833_set_interrupt_high_level(&gs_handle, level);
430 if (res != 0)
431 {
432 amg8833_interface_debug_print("amg8833: set interrupt high level failed.\n");
433 (void)amg8833_deinit(&gs_handle);
434
435 return 1;
436 }
437 amg8833_interface_debug_print("amg8833: set interrupt high level %d.\n", level);
438 res = amg8833_get_interrupt_high_level(&gs_handle, (int16_t *)&level_check);
439 if (res != 0)
440 {
441 amg8833_interface_debug_print("amg8833: get interrupt high level failed.\n");
442 (void)amg8833_deinit(&gs_handle);
443
444 return 1;
445 }
446 amg8833_interface_debug_print("amg8833: check level %s.\n", (level_check == level) ? "ok" : "error");
447
448 /* amg8833_set_interrupt_low_level/amg8833_get_interrupt_low_level test */
449 amg8833_interface_debug_print("amg8833: amg8833_set_interrupt_low_level/amg8833_get_interrupt_low_level test.\n");
450
451 level = -(rand() % 2048);
452 res = amg8833_set_interrupt_low_level(&gs_handle, level);
453 if (res != 0)
454 {
455 amg8833_interface_debug_print("amg8833: set interrupt low level failed.\n");
456 (void)amg8833_deinit(&gs_handle);
457
458 return 1;
459 }
460 amg8833_interface_debug_print("amg8833: set interrupt low level %d.\n", level);
461 res = amg8833_get_interrupt_low_level(&gs_handle, (int16_t *)&level_check);
462 if (res != 0)
463 {
464 amg8833_interface_debug_print("amg8833: get interrupt low level failed.\n");
465 (void)amg8833_deinit(&gs_handle);
466
467 return 1;
468 }
469 amg8833_interface_debug_print("amg8833: check level %s.\n", (level_check == level) ? "ok" : "error");
470
471 /* amg8833_set_interrupt_hysteresis_level/amg8833_get_interrupt_hysteresis_level test */
472 amg8833_interface_debug_print("amg8833: amg8833_set_interrupt_hysteresis_level/amg8833_get_interrupt_hysteresis_level test.\n");
473
474 level = -(rand() % 2048);
475 res = amg8833_set_interrupt_hysteresis_level(&gs_handle, level);
476 if (res != 0)
477 {
478 amg8833_interface_debug_print("amg8833: set interrupt hysteresis level failed.\n");
479 (void)amg8833_deinit(&gs_handle);
480
481 return 1;
482 }
483 amg8833_interface_debug_print("amg8833: set interrupt hysteresis level %d.\n", level);
484 res = amg8833_get_interrupt_hysteresis_level(&gs_handle, (int16_t *)&level_check);
485 if (res != 0)
486 {
487 amg8833_interface_debug_print("amg8833: get interrupt hysteresis level failed.\n");
488 (void)amg8833_deinit(&gs_handle);
489
490 return 1;
491 }
492 amg8833_interface_debug_print("amg8833: check level %s.\n", (level_check == level) ? "ok" : "error");
493
494 /* amg8833_interrupt_level_convert_to_register/amg8833_interrupt_level_convert_to_data test */
495 amg8833_interface_debug_print("amg8833: amg8833_interrupt_level_convert_to_register/amg8833_interrupt_level_convert_to_data test.\n");
496
497 tmp = (float)(rand() % 5000) / 100.0f;
498 res = amg8833_interrupt_level_convert_to_register(&gs_handle, tmp, (int16_t *)&level);
499 if (res != 0)
500 {
501 amg8833_interface_debug_print("amg8833: interrupt level convert to register failed.\n");
502 (void)amg8833_deinit(&gs_handle);
503
504 return 1;
505 }
506 amg8833_interface_debug_print("amg8833: generated temperature is %0.2f.\n", tmp);
507 res = amg8833_interrupt_level_convert_to_data(&gs_handle, level, (float *)&tmp_check);
508 if (res != 0)
509 {
510 amg8833_interface_debug_print("amg8833: interrupt level convert to data failed.\n");
511 (void)amg8833_deinit(&gs_handle);
512
513 return 1;
514 }
515 amg8833_interface_debug_print("amg8833: converted temperature is %0.2f.\n", tmp_check);
516
517 /* amg8833_get_status test */
518 amg8833_interface_debug_print("amg8833: amg8833_get_status test.\n");
519
520 res = amg8833_get_status(&gs_handle, (uint8_t *)&status);
521 if (res != 0)
522 {
523 amg8833_interface_debug_print("amg8833: get status failed.\n");
524 (void)amg8833_deinit(&gs_handle);
525
526 return 1;
527 }
528 amg8833_interface_debug_print("amg8833: check %s and status is 0x%02X.\n", (res == 0) ? "ok" : "error", status);
529
530 /* amg8833_clear_status test */
531 amg8833_interface_debug_print("amg8833: amg8833_clear_status test.\n");
532
533 /* thermistor temperature output overflow */
535 if (res != 0)
536 {
537 amg8833_interface_debug_print("amg8833: clear status failed.\n");
538 (void)amg8833_deinit(&gs_handle);
539
540 return 1;
541 }
542 amg8833_interface_debug_print("amg8833: check thermistor temperature output overflow %s.\n", (res == 0) ? "ok" : "error");
543
544 /* temperature output overflow */
546 if (res != 0)
547 {
548 amg8833_interface_debug_print("amg8833: clear status failed.\n");
549 (void)amg8833_deinit(&gs_handle);
550
551 return 1;
552 }
553 amg8833_interface_debug_print("amg8833: check temperature output overflow %s.\n", (res == 0) ? "ok" : "error");
554
555 /* interrupt outbreak */
556 res = amg8833_clear_status(&gs_handle, AMG8833_STATUS_INTF);
557 if (res != 0)
558 {
559 amg8833_interface_debug_print("amg8833: clear status failed.\n");
560 (void)amg8833_deinit(&gs_handle);
561
562 return 1;
563 }
564 amg8833_interface_debug_print("amg8833: check interrupt outbreak %s.\n", (res == 0) ? "ok" : "error");
565
566 /* amg8833_get_interrupt_table test */
567 amg8833_interface_debug_print("amg8833: amg8833_get_interrupt_table test.\n");
568
569 res = amg8833_get_interrupt_table(&gs_handle, (uint8_t (*)[1])table);
570 if (res != 0)
571 {
572 amg8833_interface_debug_print("amg8833: get interrupt table failed.\n");
573 (void)amg8833_deinit(&gs_handle);
574
575 return 1;
576 }
577 for (i = 0; i < 8; i++)
578 {
579 level = table[i][0];
580 for (j = 0; j < 8; j++)
581 {
582 if (((level >> (7 - j)) & 0x01) != 0)
583 {
585 }
586 else
587 {
589 }
590 }
592 }
593
594 /* amg8833_reset test */
595 amg8833_interface_debug_print("amg8833: amg8833_reset test.\n");
596
597 /* init reset */
598 res = amg8833_reset(&gs_handle, AMG8833_RESET_TYPE_INIT);
599 if (res != 0)
600 {
601 amg8833_interface_debug_print("amg8833: reset failed.\n");
602 (void)amg8833_deinit(&gs_handle);
603
604 return 1;
605 }
606 amg8833_interface_debug_print("amg8833: check reset %s.\n", (res == 0) ? "ok" : "error");
607
608 /* flag reset */
609 res = amg8833_reset(&gs_handle, AMG8833_RESET_TYPE_FLAG);
610 if (res != 0)
611 {
612 amg8833_interface_debug_print("amg8833: reset failed.\n");
613 (void)amg8833_deinit(&gs_handle);
614
615 return 1;
616 }
617 amg8833_interface_debug_print("amg8833: check reset %s.\n", (res == 0) ? "ok" : "error");
619
620 /* finish register test */
621 amg8833_interface_debug_print("amg8833: finish register test.\n");
622 (void)amg8833_deinit(&gs_handle);
623
624 return 0;
625}
driver amg8833 register test header file
amg8833_address_t
amg8833 address enumeration definition
uint8_t amg8833_get_frame_rate(amg8833_handle_t *handle, amg8833_frame_rate_t *rate)
get the frame rate
amg8833_frame_rate_t
amg8833 frame rate enumeration definition
uint8_t amg8833_set_interrupt(amg8833_handle_t *handle, amg8833_bool_t enable)
enable or disable the interrupt
struct amg8833_handle_s amg8833_handle_t
amg8833 handle structure definition
amg8833_bool_t
amg8833 bool enumeration definition
uint8_t amg8833_get_status(amg8833_handle_t *handle, uint8_t *status)
get the status
uint8_t amg8833_clear_status(amg8833_handle_t *handle, amg8833_status_t status)
clear the interrupt status
amg8833_average_mode_t
amg8833 average mode enumeration definition
uint8_t amg8833_set_addr_pin(amg8833_handle_t *handle, amg8833_address_t addr_pin)
set the iic address pin
amg8833_mode_t
amg8833 mode enumeration definition
uint8_t amg8833_get_mode(amg8833_handle_t *handle, amg8833_mode_t *mode)
get the mode
uint8_t amg8833_get_interrupt_table(amg8833_handle_t *handle, uint8_t table[8][1])
get the interrupt table
uint8_t amg8833_deinit(amg8833_handle_t *handle)
close the chip
struct amg8833_info_s amg8833_info_t
amg8833 information structure definition
uint8_t amg8833_get_interrupt_hysteresis_level(amg8833_handle_t *handle, int16_t *level)
get the interrupt hysteresis level
uint8_t amg8833_interrupt_level_convert_to_data(amg8833_handle_t *handle, int16_t reg, float *temp)
convert the register raw data to the interrupt level
uint8_t amg8833_get_average_mode(amg8833_handle_t *handle, amg8833_average_mode_t *mode)
get the average_mode
uint8_t amg8833_reset(amg8833_handle_t *handle, amg8833_reset_type_t type)
reset the chip
uint8_t amg8833_set_interrupt_low_level(amg8833_handle_t *handle, int16_t level)
set the interrupt low level
uint8_t amg8833_get_interrupt_high_level(amg8833_handle_t *handle, int16_t *level)
get the interrupt high level
uint8_t amg8833_info(amg8833_info_t *info)
get chip's information
uint8_t amg8833_set_interrupt_mode(amg8833_handle_t *handle, amg8833_interrupt_mode_t mode)
set the interrupt mode
uint8_t amg8833_get_interrupt_mode(amg8833_handle_t *handle, amg8833_interrupt_mode_t *mode)
get the interrupt mode
uint8_t amg8833_set_mode(amg8833_handle_t *handle, amg8833_mode_t mode)
set the mode
uint8_t amg8833_get_addr_pin(amg8833_handle_t *handle, amg8833_address_t *addr_pin)
get the iic address pin
amg8833_interrupt_mode_t
amg8833 interrupt mode enumeration definition
uint8_t amg8833_set_average_mode(amg8833_handle_t *handle, amg8833_average_mode_t mode)
set the average_mode
uint8_t amg8833_set_interrupt_high_level(amg8833_handle_t *handle, int16_t level)
set the interrupt high level
uint8_t amg8833_get_interrupt_low_level(amg8833_handle_t *handle, int16_t *level)
get the interrupt low level
uint8_t amg8833_get_interrupt(amg8833_handle_t *handle, amg8833_bool_t *enable)
get the interrupt status
uint8_t amg8833_set_frame_rate(amg8833_handle_t *handle, amg8833_frame_rate_t rate)
set the frame rate
uint8_t amg8833_interrupt_level_convert_to_register(amg8833_handle_t *handle, float temp, int16_t *reg)
convert the interrupt level to the register raw data
uint8_t amg8833_set_interrupt_hysteresis_level(amg8833_handle_t *handle, int16_t level)
set the interrupt hysteresis level
uint8_t amg8833_init(amg8833_handle_t *handle)
initialize the chip
@ AMG8833_ADDRESS_0
@ AMG8833_ADDRESS_1
@ AMG8833_FRAME_RATE_10_FPS
@ AMG8833_FRAME_RATE_1_FPS
@ AMG8833_BOOL_FALSE
@ AMG8833_BOOL_TRUE
@ AMG8833_AVERAGE_MODE_TWICE
@ AMG8833_AVERAGE_MODE_ONCE
@ AMG8833_MODE_SLEEP
@ AMG8833_MODE_NORMAL
@ AMG8833_MODE_STAND_BY_60S
@ AMG8833_MODE_STAND_BY_10S
@ AMG8833_RESET_TYPE_INIT
@ AMG8833_RESET_TYPE_FLAG
@ AMG8833_INTERRUPT_MODE_DIFFERENCE
@ AMG8833_INTERRUPT_MODE_ABSOLUTE
@ AMG8833_STATUS_INTF
@ AMG8833_STATUS_OVF_THS
@ AMG8833_STATUS_OVF_IRS
uint8_t amg8833_interface_iic_deinit(void)
interface iic bus deinit
void amg8833_interface_receive_callback(uint8_t type)
interface receive callback
void amg8833_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t amg8833_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
void amg8833_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t amg8833_interface_iic_init(void)
interface iic bus init
uint8_t amg8833_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t amg8833_register_test(amg8833_address_t addr_pin)
register test
uint32_t driver_version
char manufacturer_name[32]