LibDriver MCP9600
Loading...
Searching...
No Matches
driver_mcp9600_read_test.c
Go to the documentation of this file.
1
36
38
39static mcp9600_handle_t gs_handle;
40
52{
53 uint8_t res;
54 int16_t reg;
55 uint8_t reg2;
56 uint32_t i;
57 mcp9600_info_t info;
58
59 /* link interface function */
67
68 /* get information */
69 res = mcp9600_info(&info);
70 if (res != 0)
71 {
72 mcp9600_interface_debug_print("mcp9600: get info failed.\n");
73
74 return 1;
75 }
76 else
77 {
78 /* print chip information */
79 mcp9600_interface_debug_print("mcp9600: chip is %s.\n", info.chip_name);
80 mcp9600_interface_debug_print("mcp9600: manufacturer is %s.\n", info.manufacturer_name);
81 mcp9600_interface_debug_print("mcp9600: interface is %s.\n", info.interface);
82 mcp9600_interface_debug_print("mcp9600: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
83 mcp9600_interface_debug_print("mcp9600: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
84 mcp9600_interface_debug_print("mcp9600: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
85 mcp9600_interface_debug_print("mcp9600: max current is %0.2fmA.\n", info.max_current_ma);
86 mcp9600_interface_debug_print("mcp9600: max temperature is %0.1fC.\n", info.temperature_max);
87 mcp9600_interface_debug_print("mcp9600: min temperature is %0.1fC.\n", info.temperature_min);
88 }
89
90 /* start read test */
91 mcp9600_interface_debug_print("mcp9600: start read test.\n");
92
93 /* set mcp9600 iic address */
94 res = mcp9600_set_addr_pin(&gs_handle, addr_pin);
95 if (res != 0)
96 {
97 mcp9600_interface_debug_print("mcp9600: set addr pin failed.\n");
98
99 return 1;
100 }
101
102 /* chip init */
103 res = mcp9600_init(&gs_handle);
104 if (res != 0)
105 {
106 mcp9600_interface_debug_print("mcp9600: init failed.\n");
107
108 return 1;
109 }
110
111 /* set normal */
112 res = mcp9600_set_mode(&gs_handle, MCP9600_MODE_NORMAL);
113 if (res != 0)
114 {
115 mcp9600_interface_debug_print("mcp9600: set mode failed.\n");
116 (void)mcp9600_deinit(&gs_handle);
117
118 return 1;
119 }
120
121 /* set filter coefficient */
123 if (res != 0)
124 {
125 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
126 (void)mcp9600_deinit(&gs_handle);
127
128 return 1;
129 }
130
131 /* set thermocouple type */
132 res = mcp9600_set_thermocouple_type(&gs_handle, type);
133 if (res != 0)
134 {
135 mcp9600_interface_debug_print("mcp9600: set thermocouple type failed.\n");
136 (void)mcp9600_deinit(&gs_handle);
137
138 return 1;
139 }
140
141 /* set cold junction resolution */
143 if (res != 0)
144 {
145 mcp9600_interface_debug_print("mcp9600: set cold junction resolution failed.\n");
146 (void)mcp9600_deinit(&gs_handle);
147
148 return 1;
149 }
150
151 /* set adc resolution */
153 if (res != 0)
154 {
155 mcp9600_interface_debug_print("mcp9600: set adc resolution failed.\n");
156 (void)mcp9600_deinit(&gs_handle);
157
158 return 1;
159 }
160
161 /* set burst mode sample */
163 if (res != 0)
164 {
165 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
166 (void)mcp9600_deinit(&gs_handle);
167
168 return 1;
169 }
170
171 /* alert1 limit convert to register */
172 res = mcp9600_alert_limit_convert_to_register(&gs_handle, 30.0f, (int16_t *)&reg);
173 if (res != 0)
174 {
175 mcp9600_interface_debug_print("mcp9600: alert limit convert to register failed.\n");
176 (void)mcp9600_deinit(&gs_handle);
177
178 return 1;
179 }
180
181 /* set alert1 limit */
182 res = mcp9600_set_alert_limit(&gs_handle, MCP9600_ALERT_1, reg);
183 if (res != 0)
184 {
185 mcp9600_interface_debug_print("mcp9600: set alert limit failed.\n");
186 (void)mcp9600_deinit(&gs_handle);
187
188 return 1;
189 }
190
191 /* alert2 limit convert to register */
192 res = mcp9600_alert_limit_convert_to_register(&gs_handle, 31.0f, (int16_t *)&reg);
193 if (res != 0)
194 {
195 mcp9600_interface_debug_print("mcp9600: alert limit convert to register failed.\n");
196 (void)mcp9600_deinit(&gs_handle);
197
198 return 1;
199 }
200
201 /* set alert2 limit */
202 res = mcp9600_set_alert_limit(&gs_handle, MCP9600_ALERT_2, reg);
203 if (res != 0)
204 {
205 mcp9600_interface_debug_print("mcp9600: set alert limit failed.\n");
206 (void)mcp9600_deinit(&gs_handle);
207
208 return 1;
209 }
210
211 /* alert3 limit convert to register */
212 res = mcp9600_alert_limit_convert_to_register(&gs_handle, 32.0f, (int16_t *)&reg);
213 if (res != 0)
214 {
215 mcp9600_interface_debug_print("mcp9600: alert limit convert to register failed.\n");
216 (void)mcp9600_deinit(&gs_handle);
217
218 return 1;
219 }
220
221 /* set alert3 limit */
222 res = mcp9600_set_alert_limit(&gs_handle, MCP9600_ALERT_3, reg);
223 if (res != 0)
224 {
225 mcp9600_interface_debug_print("mcp9600: set alert limit failed.\n");
226 (void)mcp9600_deinit(&gs_handle);
227
228 return 1;
229 }
230
231 /* alert4 limit convert to register */
232 res = mcp9600_alert_limit_convert_to_register(&gs_handle, 33.0f, (int16_t *)&reg);
233 if (res != 0)
234 {
235 mcp9600_interface_debug_print("mcp9600: alert limit convert to register failed.\n");
236 (void)mcp9600_deinit(&gs_handle);
237
238 return 1;
239 }
240
241 /* set alert4 limit */
242 res = mcp9600_set_alert_limit(&gs_handle, MCP9600_ALERT_4, reg);
243 if (res != 0)
244 {
245 mcp9600_interface_debug_print("mcp9600: set alert limit failed.\n");
246 (void)mcp9600_deinit(&gs_handle);
247
248 return 1;
249 }
250
251 /* alert1 hysteresis convert to register */
252 res = mcp9600_alert_hysteresis_convert_to_register(&gs_handle, 50.0f, (uint8_t *)&reg2);
253 if (res != 0)
254 {
255 mcp9600_interface_debug_print("mcp9600: alert hysteresis convert to register failed.\n");
256 (void)mcp9600_deinit(&gs_handle);
257
258 return 1;
259 }
260
261 /* set alert1 hysteresis */
262 res = mcp9600_set_alert_hysteresis(&gs_handle, MCP9600_ALERT_1, reg2);
263 if (res != 0)
264 {
265 mcp9600_interface_debug_print("mcp9600: set alert hysteresis failed.\n");
266 (void)mcp9600_deinit(&gs_handle);
267
268 return 1;
269 }
270
271 /* alert2 hysteresis convert to register */
272 res = mcp9600_alert_hysteresis_convert_to_register(&gs_handle, 51.0f, (uint8_t *)&reg2);
273 if (res != 0)
274 {
275 mcp9600_interface_debug_print("mcp9600: alert hysteresis convert to register failed.\n");
276 (void)mcp9600_deinit(&gs_handle);
277
278 return 1;
279 }
280
281 /* set alert2 hysteresis */
282 res = mcp9600_set_alert_hysteresis(&gs_handle, MCP9600_ALERT_2, reg2);
283 if (res != 0)
284 {
285 mcp9600_interface_debug_print("mcp9600: set alert hysteresis failed.\n");
286 (void)mcp9600_deinit(&gs_handle);
287
288 return 1;
289 }
290
291 /* alert3 hysteresis convert to register */
292 res = mcp9600_alert_hysteresis_convert_to_register(&gs_handle, 52.0f, (uint8_t *)&reg2);
293 if (res != 0)
294 {
295 mcp9600_interface_debug_print("mcp9600: alert hysteresis convert to register failed.\n");
296 (void)mcp9600_deinit(&gs_handle);
297
298 return 1;
299 }
300
301 /* set alert3 hysteresis */
302 res = mcp9600_set_alert_hysteresis(&gs_handle, MCP9600_ALERT_3, reg2);
303 if (res != 0)
304 {
305 mcp9600_interface_debug_print("mcp9600: set alert hysteresis failed.\n");
306 (void)mcp9600_deinit(&gs_handle);
307
308 return 1;
309 }
310
311 /* alert4 hysteresis convert to register */
312 res = mcp9600_alert_hysteresis_convert_to_register(&gs_handle, 53.0f, (uint8_t *)&reg2);
313 if (res != 0)
314 {
315 mcp9600_interface_debug_print("mcp9600: alert hysteresis convert to register failed.\n");
316 (void)mcp9600_deinit(&gs_handle);
317
318 return 1;
319 }
320
321 /* set alert4 hysteresis */
322 res = mcp9600_set_alert_hysteresis(&gs_handle, MCP9600_ALERT_4, reg2);
323 if (res != 0)
324 {
325 mcp9600_interface_debug_print("mcp9600: set alert hysteresis failed.\n");
326 (void)mcp9600_deinit(&gs_handle);
327
328 return 1;
329 }
330
331 /* set alert1 temperature maintain detect */
334 if (res != 0)
335 {
336 mcp9600_interface_debug_print("mcp9600: set temperature maintain detect failed.\n");
337 (void)mcp9600_deinit(&gs_handle);
338
339 return 1;
340 }
341
342 /* set alert2 temperature maintain detect */
345 if (res != 0)
346 {
347 mcp9600_interface_debug_print("mcp9600: set temperature maintain detect failed.\n");
348 (void)mcp9600_deinit(&gs_handle);
349
350 return 1;
351 }
352
353 /* set alert3 temperature maintain detect */
356 if (res != 0)
357 {
358 mcp9600_interface_debug_print("mcp9600: set temperature maintain detect failed.\n");
359 (void)mcp9600_deinit(&gs_handle);
360
361 return 1;
362 }
363
364 /* set alert4 temperature maintain detect */
367 if (res != 0)
368 {
369 mcp9600_interface_debug_print("mcp9600: set temperature maintain detect failed.\n");
370 (void)mcp9600_deinit(&gs_handle);
371
372 return 1;
373 }
374
375 /* set alert1 detect edge */
377 if (res != 0)
378 {
379 mcp9600_interface_debug_print("mcp9600: set detect edge failed.\n");
380 (void)mcp9600_deinit(&gs_handle);
381
382 return 1;
383 }
384
385 /* set alert2 detect edge */
387 if (res != 0)
388 {
389 mcp9600_interface_debug_print("mcp9600: set detect edge failed.\n");
390 (void)mcp9600_deinit(&gs_handle);
391
392 return 1;
393 }
394
395 /* set alert3 detect edge */
397 if (res != 0)
398 {
399 mcp9600_interface_debug_print("mcp9600: set detect edge failed.\n");
400 (void)mcp9600_deinit(&gs_handle);
401
402 return 1;
403 }
404
405 /* set alert4 detect edge */
407 if (res != 0)
408 {
409 mcp9600_interface_debug_print("mcp9600: set detect edge failed.\n");
410 (void)mcp9600_deinit(&gs_handle);
411
412 return 1;
413 }
414
415 /* set alert1 active level */
417 if (res != 0)
418 {
419 mcp9600_interface_debug_print("mcp9600: set active level failed.\n");
420 (void)mcp9600_deinit(&gs_handle);
421
422 return 1;
423 }
424
425 /* set alert2 active level */
427 if (res != 0)
428 {
429 mcp9600_interface_debug_print("mcp9600: set active level failed.\n");
430 (void)mcp9600_deinit(&gs_handle);
431
432 return 1;
433 }
434
435 /* set alert3 active level */
437 if (res != 0)
438 {
439 mcp9600_interface_debug_print("mcp9600: set active level failed.\n");
440 (void)mcp9600_deinit(&gs_handle);
441
442 return 1;
443 }
444
445 /* set alert4 active level */
447 if (res != 0)
448 {
449 mcp9600_interface_debug_print("mcp9600: set active level failed.\n");
450 (void)mcp9600_deinit(&gs_handle);
451
452 return 1;
453 }
454
455 /* set alert1 interrupt mode */
457 if (res != 0)
458 {
459 mcp9600_interface_debug_print("mcp9600: set interrupt mode failed.\n");
460 (void)mcp9600_deinit(&gs_handle);
461
462 return 1;
463 }
464
465 /* set alert2 interrupt mode */
467 if (res != 0)
468 {
469 mcp9600_interface_debug_print("mcp9600: set interrupt mode failed.\n");
470 (void)mcp9600_deinit(&gs_handle);
471
472 return 1;
473 }
474
475 /* set alert3 interrupt mode */
477 if (res != 0)
478 {
479 mcp9600_interface_debug_print("mcp9600: set interrupt mode failed.\n");
480 (void)mcp9600_deinit(&gs_handle);
481
482 return 1;
483 }
484
485 /* set alert4 interrupt mode */
487 if (res != 0)
488 {
489 mcp9600_interface_debug_print("mcp9600: set interrupt mode failed.\n");
490 (void)mcp9600_deinit(&gs_handle);
491
492 return 1;
493 }
494
495 /* set alert1 output */
497 if (res != 0)
498 {
499 mcp9600_interface_debug_print("mcp9600: set alert output failed.\n");
500 (void)mcp9600_deinit(&gs_handle);
501
502 return 1;
503 }
504
505 /* set alert2 output */
507 if (res != 0)
508 {
509 mcp9600_interface_debug_print("mcp9600: set alert output failed.\n");
510 (void)mcp9600_deinit(&gs_handle);
511
512 return 1;
513 }
514
515 /* set alert3 output */
517 if (res != 0)
518 {
519 mcp9600_interface_debug_print("mcp9600: set alert output failed.\n");
520 (void)mcp9600_deinit(&gs_handle);
521
522 return 1;
523 }
524
525 /* set alert4 output */
527 if (res != 0)
528 {
529 mcp9600_interface_debug_print("mcp9600: set alert output failed.\n");
530 (void)mcp9600_deinit(&gs_handle);
531
532 return 1;
533 }
534
535 /* start continuous read test */
536 mcp9600_interface_debug_print("mcp9600: start continuous read test.\n");
537
538 /* start continuous read */
539 res = mcp9600_start_continuous_read(&gs_handle);
540 if (res != 0)
541 {
542 mcp9600_interface_debug_print("mcp9600: start continuous read failed.\n");
543 (void)mcp9600_deinit(&gs_handle);
544
545 return 1;
546 }
547
548 for (i = 0; i < times; i++)
549 {
550 int16_t hot_raw;
551 float hot_s;
552 int16_t delta_raw;
553 float delta_s;
554 int16_t cold_raw;
555 float cold_s;
556
557 /* continuous read */
558 res = mcp9600_continuous_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
559 (int16_t *)&delta_raw, (float *)&delta_s,
560 (int16_t *)&cold_raw, (float *)&cold_s);
561 if (res != 0)
562 {
563 mcp9600_interface_debug_print("mcp9600: continuous read failed.\n");
564 (void)mcp9600_deinit(&gs_handle);
565
566 return 1;
567 }
568
569 /* print */
570 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
571
572 /* delay 1000 ms */
574 }
575
576 /* stop continuous read */
577 res = mcp9600_stop_continuous_read(&gs_handle);
578 if (res != 0)
579 {
580 mcp9600_interface_debug_print("mcp9600: stop continuous read failed.\n");
581 (void)mcp9600_deinit(&gs_handle);
582
583 return 1;
584 }
585
586 /* start single read test */
587 mcp9600_interface_debug_print("mcp9600: start single read test.\n");
588
589 for (i = 0; i < times; i++)
590 {
591 int16_t hot_raw;
592 float hot_s;
593 int16_t delta_raw;
594 float delta_s;
595 int16_t cold_raw;
596 float cold_s;
597
598 /* single read */
599 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
600 (int16_t *)&delta_raw, (float *)&delta_s,
601 (int16_t *)&cold_raw, (float *)&cold_s);
602 if (res != 0)
603 {
604 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
605 (void)mcp9600_deinit(&gs_handle);
606
607 return 1;
608 }
609
610 /* print */
611 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
612
613 /* delay 1000 ms */
615 }
616
617 /* start continuous read */
618 res = mcp9600_start_continuous_read(&gs_handle);
619 if (res != 0)
620 {
621 mcp9600_interface_debug_print("mcp9600: start continuous read failed.\n");
622 (void)mcp9600_deinit(&gs_handle);
623
624 return 1;
625 }
626
627 /* set cold junction resolution 0.25 */
628 mcp9600_interface_debug_print("mcp9600: set cold junction resolution 0.25.\n");
629
630 /* set cold junction resolution */
632 if (res != 0)
633 {
634 mcp9600_interface_debug_print("mcp9600: set cold junction resolution failed.\n");
635 (void)mcp9600_deinit(&gs_handle);
636
637 return 1;
638 }
639
640 for (i = 0; i < times; i++)
641 {
642 int16_t hot_raw;
643 float hot_s;
644 int16_t delta_raw;
645 float delta_s;
646 int16_t cold_raw;
647 float cold_s;
648
649 /* continuous read */
650 res = mcp9600_continuous_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
651 (int16_t *)&delta_raw, (float *)&delta_s,
652 (int16_t *)&cold_raw, (float *)&cold_s);
653 if (res != 0)
654 {
655 mcp9600_interface_debug_print("mcp9600: continuous read failed.\n");
656 (void)mcp9600_deinit(&gs_handle);
657
658 return 1;
659 }
660
661 /* print */
662 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
663
664 /* delay 1000 ms */
666 }
667
668 /* set adc resolution 18 bit */
669 mcp9600_interface_debug_print("mcp9600: set adc resolution 18 bit.\n");
670
671 /* set adc resolution */
673 if (res != 0)
674 {
675 mcp9600_interface_debug_print("mcp9600: set adc resolution failed.\n");
676 (void)mcp9600_deinit(&gs_handle);
677
678 return 1;
679 }
680
681 for (i = 0; i < times; i++)
682 {
683 int16_t hot_raw;
684 float hot_s;
685 int16_t delta_raw;
686 float delta_s;
687 int16_t cold_raw;
688 float cold_s;
689 int32_t raw;
690 double uv;
691
692 /* continuous read */
693 res = mcp9600_continuous_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
694 (int16_t *)&delta_raw, (float *)&delta_s,
695 (int16_t *)&cold_raw, (float *)&cold_s);
696 if (res != 0)
697 {
698 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
699 (void)mcp9600_deinit(&gs_handle);
700
701 return 1;
702 }
703
704 /* print */
705 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
706
707 /* ge raw adc */
708 res = mcp9600_get_raw_adc(&gs_handle, (int32_t *)&raw, (double *)&uv);
709 if (res != 0)
710 {
711 mcp9600_interface_debug_print("mcp9600: get raw adc failed.\n");
712 (void)mcp9600_deinit(&gs_handle);
713
714 return 1;
715 }
716
717 /* print */
718 mcp9600_interface_debug_print("mcp9600: raw is %d uv is %f.\n", raw, uv);
719
720 /* delay 1000 ms */
722 }
723
724 /* set adc resolution 16 bit */
725 mcp9600_interface_debug_print("mcp9600: set adc resolution 16 bit.\n");
726
727 /* set adc resolution */
729 if (res != 0)
730 {
731 mcp9600_interface_debug_print("mcp9600: set adc resolution failed.\n");
732 (void)mcp9600_deinit(&gs_handle);
733
734 return 1;
735 }
736
737 for (i = 0; i < times; i++)
738 {
739 int16_t hot_raw;
740 float hot_s;
741 int16_t delta_raw;
742 float delta_s;
743 int16_t cold_raw;
744 float cold_s;
745 int32_t raw;
746 double uv;
747
748 /* continuous read */
749 res = mcp9600_continuous_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
750 (int16_t *)&delta_raw, (float *)&delta_s,
751 (int16_t *)&cold_raw, (float *)&cold_s);
752 if (res != 0)
753 {
754 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
755 (void)mcp9600_deinit(&gs_handle);
756
757 return 1;
758 }
759
760 /* print */
761 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
762
763 /* ge raw adc */
764 res = mcp9600_get_raw_adc(&gs_handle, (int32_t *)&raw, (double *)&uv);
765 if (res != 0)
766 {
767 mcp9600_interface_debug_print("mcp9600: get raw adc failed.\n");
768 (void)mcp9600_deinit(&gs_handle);
769
770 return 1;
771 }
772
773 /* print */
774 mcp9600_interface_debug_print("mcp9600: raw is %d uv is %f.\n", raw, uv);
775
776 /* delay 1000 ms */
778 }
779
780 /* stop continuous read */
781 res = mcp9600_stop_continuous_read(&gs_handle);
782 if (res != 0)
783 {
784 mcp9600_interface_debug_print("mcp9600: stop continuous read failed.\n");
785 (void)mcp9600_deinit(&gs_handle);
786
787 return 1;
788 }
789
790 /* set adc resolution 14 bit */
791 mcp9600_interface_debug_print("mcp9600: set adc resolution 14 bit.\n");
792
793 /* set adc resolution */
795 if (res != 0)
796 {
797 mcp9600_interface_debug_print("mcp9600: set adc resolution failed.\n");
798 (void)mcp9600_deinit(&gs_handle);
799
800 return 1;
801 }
802
803 for (i = 0; i < times; i++)
804 {
805 int16_t hot_raw;
806 float hot_s;
807 int16_t delta_raw;
808 float delta_s;
809 int16_t cold_raw;
810 float cold_s;
811 int32_t raw;
812 double uv;
813
814 /* continuous read */
815 res = mcp9600_continuous_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
816 (int16_t *)&delta_raw, (float *)&delta_s,
817 (int16_t *)&cold_raw, (float *)&cold_s);
818 if (res != 0)
819 {
820 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
821 (void)mcp9600_deinit(&gs_handle);
822
823 return 1;
824 }
825
826 /* print */
827 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
828
829 /* ge raw adc */
830 res = mcp9600_get_raw_adc(&gs_handle, (int32_t *)&raw, (double *)&uv);
831 if (res != 0)
832 {
833 mcp9600_interface_debug_print("mcp9600: get raw adc failed.\n");
834 (void)mcp9600_deinit(&gs_handle);
835
836 return 1;
837 }
838
839 /* print */
840 mcp9600_interface_debug_print("mcp9600: raw is %d uv is %f.\n", raw, uv);
841
842 /* delay 1000 ms */
844 }
845
846 /* set adc resolution 12 bit */
847 mcp9600_interface_debug_print("mcp9600: set adc resolution 12 bit.\n");
848
849 /* set adc resolution */
851 if (res != 0)
852 {
853 mcp9600_interface_debug_print("mcp9600: set adc resolution failed.\n");
854 (void)mcp9600_deinit(&gs_handle);
855
856 return 1;
857 }
858
859 for (i = 0; i < times; i++)
860 {
861 int16_t hot_raw;
862 float hot_s;
863 int16_t delta_raw;
864 float delta_s;
865 int16_t cold_raw;
866 float cold_s;
867 int32_t raw;
868 double uv;
869
870 /* continuous read */
871 res = mcp9600_continuous_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
872 (int16_t *)&delta_raw, (float *)&delta_s,
873 (int16_t *)&cold_raw, (float *)&cold_s);
874 if (res != 0)
875 {
876 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
877 (void)mcp9600_deinit(&gs_handle);
878
879 return 1;
880 }
881
882 /* print */
883 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
884
885 /* ge raw adc */
886 res = mcp9600_get_raw_adc(&gs_handle, (int32_t *)&raw, (double *)&uv);
887 if (res != 0)
888 {
889 mcp9600_interface_debug_print("mcp9600: get raw adc failed.\n");
890 (void)mcp9600_deinit(&gs_handle);
891
892 return 1;
893 }
894
895 /* print */
896 mcp9600_interface_debug_print("mcp9600: raw is %d uv is %f.\n", raw, uv);
897
898 /* delay 1000 ms */
900 }
901
902 /* stop continuous read */
903 res = mcp9600_stop_continuous_read(&gs_handle);
904 if (res != 0)
905 {
906 mcp9600_interface_debug_print("mcp9600: stop continuous read failed.\n");
907 (void)mcp9600_deinit(&gs_handle);
908
909 return 1;
910 }
911
912 /* set burst mode sample 1 */
913 mcp9600_interface_debug_print("mcp9600: set burst mode sample 1.\n");
914
915 /* set burst mode sample 1 */
917 if (res != 0)
918 {
919 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
920 (void)mcp9600_deinit(&gs_handle);
921
922 return 1;
923 }
924
925 for (i = 0; i < times; i++)
926 {
927 int16_t hot_raw;
928 float hot_s;
929 int16_t delta_raw;
930 float delta_s;
931 int16_t cold_raw;
932 float cold_s;
933
934 /* single read */
935 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
936 (int16_t *)&delta_raw, (float *)&delta_s,
937 (int16_t *)&cold_raw, (float *)&cold_s);
938 if (res != 0)
939 {
940 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
941 (void)mcp9600_deinit(&gs_handle);
942
943 return 1;
944 }
945
946 /* print */
947 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
948 }
949
950 /* set burst mode sample 2 */
951 mcp9600_interface_debug_print("mcp9600: set burst mode sample 2.\n");
952
953 /* set burst mode sample 2 */
955 if (res != 0)
956 {
957 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
958 (void)mcp9600_deinit(&gs_handle);
959
960 return 1;
961 }
962
963 for (i = 0; i < times; i++)
964 {
965 int16_t hot_raw;
966 float hot_s;
967 int16_t delta_raw;
968 float delta_s;
969 int16_t cold_raw;
970 float cold_s;
971
972 /* single read */
973 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
974 (int16_t *)&delta_raw, (float *)&delta_s,
975 (int16_t *)&cold_raw, (float *)&cold_s);
976 if (res != 0)
977 {
978 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
979 (void)mcp9600_deinit(&gs_handle);
980
981 return 1;
982 }
983
984 /* print */
985 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
986 }
987
988 /* set burst mode sample 4 */
989 mcp9600_interface_debug_print("mcp9600: set burst mode sample 4.\n");
990
991 /* set burst mode sample 4 */
993 if (res != 0)
994 {
995 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
996 (void)mcp9600_deinit(&gs_handle);
997
998 return 1;
999 }
1000
1001 for (i = 0; i < times; i++)
1002 {
1003 int16_t hot_raw;
1004 float hot_s;
1005 int16_t delta_raw;
1006 float delta_s;
1007 int16_t cold_raw;
1008 float cold_s;
1009
1010 /* single read */
1011 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1012 (int16_t *)&delta_raw, (float *)&delta_s,
1013 (int16_t *)&cold_raw, (float *)&cold_s);
1014 if (res != 0)
1015 {
1016 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1017 (void)mcp9600_deinit(&gs_handle);
1018
1019 return 1;
1020 }
1021
1022 /* print */
1023 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1024 }
1025
1026 /* set burst mode sample 8 */
1027 mcp9600_interface_debug_print("mcp9600: set burst mode sample 8.\n");
1028
1029 /* set burst mode sample 8 */
1031 if (res != 0)
1032 {
1033 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
1034 (void)mcp9600_deinit(&gs_handle);
1035
1036 return 1;
1037 }
1038
1039 for (i = 0; i < times; i++)
1040 {
1041 int16_t hot_raw;
1042 float hot_s;
1043 int16_t delta_raw;
1044 float delta_s;
1045 int16_t cold_raw;
1046 float cold_s;
1047
1048 /* single read */
1049 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1050 (int16_t *)&delta_raw, (float *)&delta_s,
1051 (int16_t *)&cold_raw, (float *)&cold_s);
1052 if (res != 0)
1053 {
1054 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1055 (void)mcp9600_deinit(&gs_handle);
1056
1057 return 1;
1058 }
1059
1060 /* print */
1061 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1062 }
1063
1064 /* set burst mode sample 16 */
1065 mcp9600_interface_debug_print("mcp9600: set burst mode sample 16.\n");
1066
1067 /* set burst mode sample 16 */
1069 if (res != 0)
1070 {
1071 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
1072 (void)mcp9600_deinit(&gs_handle);
1073
1074 return 1;
1075 }
1076
1077 for (i = 0; i < times; i++)
1078 {
1079 int16_t hot_raw;
1080 float hot_s;
1081 int16_t delta_raw;
1082 float delta_s;
1083 int16_t cold_raw;
1084 float cold_s;
1085
1086 /* single read */
1087 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1088 (int16_t *)&delta_raw, (float *)&delta_s,
1089 (int16_t *)&cold_raw, (float *)&cold_s);
1090 if (res != 0)
1091 {
1092 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1093 (void)mcp9600_deinit(&gs_handle);
1094
1095 return 1;
1096 }
1097
1098 /* print */
1099 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1100 }
1101
1102 /* set burst mode sample 32 */
1103 mcp9600_interface_debug_print("mcp9600: set burst mode sample 32.\n");
1104
1105 /* set burst mode sample 32 */
1107 if (res != 0)
1108 {
1109 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
1110 (void)mcp9600_deinit(&gs_handle);
1111
1112 return 1;
1113 }
1114
1115 for (i = 0; i < times; i++)
1116 {
1117 int16_t hot_raw;
1118 float hot_s;
1119 int16_t delta_raw;
1120 float delta_s;
1121 int16_t cold_raw;
1122 float cold_s;
1123
1124 /* single read */
1125 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1126 (int16_t *)&delta_raw, (float *)&delta_s,
1127 (int16_t *)&cold_raw, (float *)&cold_s);
1128 if (res != 0)
1129 {
1130 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1131 (void)mcp9600_deinit(&gs_handle);
1132
1133 return 1;
1134 }
1135
1136 /* print */
1137 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1138 }
1139
1140 /* set burst mode sample 64 */
1141 mcp9600_interface_debug_print("mcp9600: set burst mode sample 64.\n");
1142
1143 /* set burst mode sample 64 */
1145 if (res != 0)
1146 {
1147 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
1148 (void)mcp9600_deinit(&gs_handle);
1149
1150 return 1;
1151 }
1152
1153 for (i = 0; i < times; i++)
1154 {
1155 int16_t hot_raw;
1156 float hot_s;
1157 int16_t delta_raw;
1158 float delta_s;
1159 int16_t cold_raw;
1160 float cold_s;
1161
1162 /* single read */
1163 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1164 (int16_t *)&delta_raw, (float *)&delta_s,
1165 (int16_t *)&cold_raw, (float *)&cold_s);
1166 if (res != 0)
1167 {
1168 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1169 (void)mcp9600_deinit(&gs_handle);
1170
1171 return 1;
1172 }
1173
1174 /* print */
1175 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1176 }
1177
1178 /* set burst mode sample 128 */
1179 mcp9600_interface_debug_print("mcp9600: set burst mode sample 128.\n");
1180
1181 /* set burst mode sample 128 */
1183 if (res != 0)
1184 {
1185 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
1186 (void)mcp9600_deinit(&gs_handle);
1187
1188 return 1;
1189 }
1190
1191 for (i = 0; i < times; i++)
1192 {
1193 int16_t hot_raw;
1194 float hot_s;
1195 int16_t delta_raw;
1196 float delta_s;
1197 int16_t cold_raw;
1198 float cold_s;
1199
1200 /* single read */
1201 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1202 (int16_t *)&delta_raw, (float *)&delta_s,
1203 (int16_t *)&cold_raw, (float *)&cold_s);
1204 if (res != 0)
1205 {
1206 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1207 (void)mcp9600_deinit(&gs_handle);
1208
1209 return 1;
1210 }
1211
1212 /* print */
1213 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1214 }
1215
1216 /* set burst mode sample 2 */
1218 if (res != 0)
1219 {
1220 mcp9600_interface_debug_print("mcp9600: set burst mode sample failed.\n");
1221 (void)mcp9600_deinit(&gs_handle);
1222
1223 return 1;
1224 }
1225
1226 /* set filter coefficient 0 */
1227 mcp9600_interface_debug_print("mcp9600: set filter coefficient 0.\n");
1228
1229 /* set filter coefficient 0 */
1231 if (res != 0)
1232 {
1233 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1234 (void)mcp9600_deinit(&gs_handle);
1235
1236 return 1;
1237 }
1238 for (i = 0; i < times; i++)
1239 {
1240 int16_t hot_raw;
1241 float hot_s;
1242 int16_t delta_raw;
1243 float delta_s;
1244 int16_t cold_raw;
1245 float cold_s;
1246
1247 /* single read */
1248 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1249 (int16_t *)&delta_raw, (float *)&delta_s,
1250 (int16_t *)&cold_raw, (float *)&cold_s);
1251 if (res != 0)
1252 {
1253 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1254 (void)mcp9600_deinit(&gs_handle);
1255
1256 return 1;
1257 }
1258
1259 /* 1000 ms */
1261
1262 /* print */
1263 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1264 }
1265
1266 /* set filter coefficient 1 */
1267 mcp9600_interface_debug_print("mcp9600: set filter coefficient 1.\n");
1268
1269 /* set filter coefficient 1 */
1271 if (res != 0)
1272 {
1273 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1274 (void)mcp9600_deinit(&gs_handle);
1275
1276 return 1;
1277 }
1278 for (i = 0; i < times; i++)
1279 {
1280 int16_t hot_raw;
1281 float hot_s;
1282 int16_t delta_raw;
1283 float delta_s;
1284 int16_t cold_raw;
1285 float cold_s;
1286
1287 /* single read */
1288 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1289 (int16_t *)&delta_raw, (float *)&delta_s,
1290 (int16_t *)&cold_raw, (float *)&cold_s);
1291 if (res != 0)
1292 {
1293 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1294 (void)mcp9600_deinit(&gs_handle);
1295
1296 return 1;
1297 }
1298
1299 /* 1000 ms */
1301
1302 /* print */
1303 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1304 }
1305
1306 /* set filter coefficient 2 */
1307 mcp9600_interface_debug_print("mcp9600: set filter coefficient 2.\n");
1308
1309 /* set filter coefficient 2 */
1311 if (res != 0)
1312 {
1313 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1314 (void)mcp9600_deinit(&gs_handle);
1315
1316 return 1;
1317 }
1318 for (i = 0; i < times; i++)
1319 {
1320 int16_t hot_raw;
1321 float hot_s;
1322 int16_t delta_raw;
1323 float delta_s;
1324 int16_t cold_raw;
1325 float cold_s;
1326
1327 /* single read */
1328 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1329 (int16_t *)&delta_raw, (float *)&delta_s,
1330 (int16_t *)&cold_raw, (float *)&cold_s);
1331 if (res != 0)
1332 {
1333 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1334 (void)mcp9600_deinit(&gs_handle);
1335
1336 return 1;
1337 }
1338
1339 /* 1000 ms */
1341
1342 /* print */
1343 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1344 }
1345
1346 /* set filter coefficient 3 */
1347 mcp9600_interface_debug_print("mcp9600: set filter coefficient 3.\n");
1348
1349 /* set filter coefficient 3 */
1351 if (res != 0)
1352 {
1353 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1354 (void)mcp9600_deinit(&gs_handle);
1355
1356 return 1;
1357 }
1358 for (i = 0; i < times; i++)
1359 {
1360 int16_t hot_raw;
1361 float hot_s;
1362 int16_t delta_raw;
1363 float delta_s;
1364 int16_t cold_raw;
1365 float cold_s;
1366
1367 /* single read */
1368 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1369 (int16_t *)&delta_raw, (float *)&delta_s,
1370 (int16_t *)&cold_raw, (float *)&cold_s);
1371 if (res != 0)
1372 {
1373 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1374 (void)mcp9600_deinit(&gs_handle);
1375
1376 return 1;
1377 }
1378
1379 /* 1000 ms */
1381
1382 /* print */
1383 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1384 }
1385
1386 /* set filter coefficient 4 */
1387 mcp9600_interface_debug_print("mcp9600: set filter coefficient 4.\n");
1388
1389 /* set filter coefficient 4 */
1391 if (res != 0)
1392 {
1393 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1394 (void)mcp9600_deinit(&gs_handle);
1395
1396 return 1;
1397 }
1398 for (i = 0; i < times; i++)
1399 {
1400 int16_t hot_raw;
1401 float hot_s;
1402 int16_t delta_raw;
1403 float delta_s;
1404 int16_t cold_raw;
1405 float cold_s;
1406
1407 /* single read */
1408 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1409 (int16_t *)&delta_raw, (float *)&delta_s,
1410 (int16_t *)&cold_raw, (float *)&cold_s);
1411 if (res != 0)
1412 {
1413 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1414 (void)mcp9600_deinit(&gs_handle);
1415
1416 return 1;
1417 }
1418
1419 /* 1000 ms */
1421
1422 /* print */
1423 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1424 }
1425
1426 /* set filter coefficient 5 */
1427 mcp9600_interface_debug_print("mcp9600: set filter coefficient 5.\n");
1428
1429 /* set filter coefficient 5 */
1431 if (res != 0)
1432 {
1433 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1434 (void)mcp9600_deinit(&gs_handle);
1435
1436 return 1;
1437 }
1438 for (i = 0; i < times; i++)
1439 {
1440 int16_t hot_raw;
1441 float hot_s;
1442 int16_t delta_raw;
1443 float delta_s;
1444 int16_t cold_raw;
1445 float cold_s;
1446
1447 /* single read */
1448 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1449 (int16_t *)&delta_raw, (float *)&delta_s,
1450 (int16_t *)&cold_raw, (float *)&cold_s);
1451 if (res != 0)
1452 {
1453 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1454 (void)mcp9600_deinit(&gs_handle);
1455
1456 return 1;
1457 }
1458
1459 /* 1000 ms */
1461
1462 /* print */
1463 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1464 }
1465
1466 /* set filter coefficient 6 */
1467 mcp9600_interface_debug_print("mcp9600: set filter coefficient 6.\n");
1468
1469 /* set filter coefficient 6 */
1471 if (res != 0)
1472 {
1473 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1474 (void)mcp9600_deinit(&gs_handle);
1475
1476 return 1;
1477 }
1478 for (i = 0; i < times; i++)
1479 {
1480 int16_t hot_raw;
1481 float hot_s;
1482 int16_t delta_raw;
1483 float delta_s;
1484 int16_t cold_raw;
1485 float cold_s;
1486
1487 /* single read */
1488 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1489 (int16_t *)&delta_raw, (float *)&delta_s,
1490 (int16_t *)&cold_raw, (float *)&cold_s);
1491 if (res != 0)
1492 {
1493 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1494 (void)mcp9600_deinit(&gs_handle);
1495
1496 return 1;
1497 }
1498
1499 /* 1000 ms */
1501
1502 /* print */
1503 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1504 }
1505
1506 /* set filter coefficient 7 */
1507 mcp9600_interface_debug_print("mcp9600: set filter coefficient 7.\n");
1508
1509 /* set filter coefficient 7 */
1511 if (res != 0)
1512 {
1513 mcp9600_interface_debug_print("mcp9600: set filter coefficient failed.\n");
1514 (void)mcp9600_deinit(&gs_handle);
1515
1516 return 1;
1517 }
1518 for (i = 0; i < times; i++)
1519 {
1520 int16_t hot_raw;
1521 float hot_s;
1522 int16_t delta_raw;
1523 float delta_s;
1524 int16_t cold_raw;
1525 float cold_s;
1526
1527 /* single read */
1528 res = mcp9600_single_read(&gs_handle, (int16_t *)&hot_raw, (float *)&hot_s,
1529 (int16_t *)&delta_raw, (float *)&delta_s,
1530 (int16_t *)&cold_raw, (float *)&cold_s);
1531 if (res != 0)
1532 {
1533 mcp9600_interface_debug_print("mcp9600: single read failed.\n");
1534 (void)mcp9600_deinit(&gs_handle);
1535
1536 return 1;
1537 }
1538
1539 /* 1000 ms */
1541
1542 /* print */
1543 mcp9600_interface_debug_print("mcp9600: hot %0.2f delta %0.2f cold %0.2f.\n", hot_s, delta_s, cold_s);
1544 }
1545
1546 /* finish read test */
1547 mcp9600_interface_debug_print("mcp9600: finish read test.\n");
1548 (void)mcp9600_deinit(&gs_handle);
1549
1550 return 0;
1551}
driver mcp9600 read test header file
uint8_t mcp9600_set_alert_hysteresis(mcp9600_handle_t *handle, mcp9600_alert_t alert, uint8_t reg)
set the alert hysteresis
mcp9600_address_t
mcp9600 address enumeration definition
struct mcp9600_info_s mcp9600_info_t
mcp9600 information structure definition
mcp9600_thermocouple_type_t
mcp9600 thermocouple type enumeration definition
uint8_t mcp9600_set_active_level(mcp9600_handle_t *handle, mcp9600_alert_t alert, mcp9600_active_level_t level)
set the active level
uint8_t mcp9600_set_detect_edge(mcp9600_handle_t *handle, mcp9600_alert_t alert, mcp9600_detect_edge_t edge)
set the detect edge
uint8_t mcp9600_set_cold_junction_resolution(mcp9600_handle_t *handle, mcp9600_cold_junction_resolution_t resolution)
set the cold junction resolution
uint8_t mcp9600_single_read(mcp9600_handle_t *handle, int16_t *hot_raw, float *hot_s, int16_t *delta_raw, float *delta_s, int16_t *cold_raw, float *cold_s)
read data once
uint8_t mcp9600_set_alert_limit(mcp9600_handle_t *handle, mcp9600_alert_t alert, int16_t reg)
set the alert limit
uint8_t mcp9600_set_thermocouple_type(mcp9600_handle_t *handle, mcp9600_thermocouple_type_t type)
set the thermocouple type
uint8_t mcp9600_stop_continuous_read(mcp9600_handle_t *handle)
stop reading data
uint8_t mcp9600_set_mode(mcp9600_handle_t *handle, mcp9600_mode_t mode)
set the mode
uint8_t mcp9600_start_continuous_read(mcp9600_handle_t *handle)
start reading data
struct mcp9600_handle_s mcp9600_handle_t
mcp9600 handle structure definition
uint8_t mcp9600_get_raw_adc(mcp9600_handle_t *handle, int32_t *raw, double *uv)
get the raw adc
uint8_t mcp9600_alert_limit_convert_to_register(mcp9600_handle_t *handle, float c, int16_t *reg)
convert the alert limit to the register raw data
uint8_t mcp9600_alert_hysteresis_convert_to_register(mcp9600_handle_t *handle, float c, uint8_t *reg)
convert the alert hysteresis to the register raw data
uint8_t mcp9600_set_alert_output(mcp9600_handle_t *handle, mcp9600_alert_t alert, mcp9600_bool_t enable)
set the alert output
uint8_t mcp9600_set_addr_pin(mcp9600_handle_t *handle, mcp9600_address_t addr_pin)
set the iic address pin
uint8_t mcp9600_set_filter_coefficient(mcp9600_handle_t *handle, mcp9600_filter_coefficient_t coefficient)
set the filter coefficient
uint8_t mcp9600_set_temperature_maintain_detect(mcp9600_handle_t *handle, mcp9600_alert_t alert, mcp9600_temperature_maintain_detect_t maintain_detect)
set the temperature maintain detect
uint8_t mcp9600_set_burst_mode_sample(mcp9600_handle_t *handle, mcp9600_burst_mode_sample_t sample)
set the burst mode sample
uint8_t mcp9600_info(mcp9600_info_t *info)
get chip information
uint8_t mcp9600_set_interrupt_mode(mcp9600_handle_t *handle, mcp9600_alert_t alert, mcp9600_interrupt_mode_t mode)
set the interrupt mode
uint8_t mcp9600_deinit(mcp9600_handle_t *handle)
close the chip
uint8_t mcp9600_set_adc_resolution(mcp9600_handle_t *handle, mcp9600_adc_resolution_t resolution)
set the adc resolution
uint8_t mcp9600_continuous_read(mcp9600_handle_t *handle, int16_t *hot_raw, float *hot_s, int16_t *delta_raw, float *delta_s, int16_t *cold_raw, float *cold_s)
read data continuously
uint8_t mcp9600_init(mcp9600_handle_t *handle)
initialize the chip
@ MCP9600_ACTIVE_LEVEL_LOW
@ MCP9600_MODE_NORMAL
@ MCP9600_COLD_JUNCTION_RESOLUTION_0P25
@ MCP9600_COLD_JUNCTION_RESOLUTION_0P0625
@ MCP9600_FILTER_COEFFICIENT_6
@ MCP9600_FILTER_COEFFICIENT_5
@ MCP9600_FILTER_COEFFICIENT_1
@ MCP9600_FILTER_COEFFICIENT_3
@ MCP9600_FILTER_COEFFICIENT_7
@ MCP9600_FILTER_COEFFICIENT_2
@ MCP9600_FILTER_COEFFICIENT_4
@ MCP9600_FILTER_COEFFICIENT_0
@ MCP9600_ADC_RESOLUTION_18_BIT
@ MCP9600_ADC_RESOLUTION_16_BIT
@ MCP9600_ADC_RESOLUTION_12_BIT
@ MCP9600_ADC_RESOLUTION_14_BIT
@ MCP9600_BURST_MODE_SAMPLE_8
@ MCP9600_BURST_MODE_SAMPLE_32
@ MCP9600_BURST_MODE_SAMPLE_4
@ MCP9600_BURST_MODE_SAMPLE_2
@ MCP9600_BURST_MODE_SAMPLE_128
@ MCP9600_BURST_MODE_SAMPLE_64
@ MCP9600_BURST_MODE_SAMPLE_1
@ MCP9600_BURST_MODE_SAMPLE_16
@ MCP9600_INTERRUPT_MODE_INTERRUPT
@ MCP9600_ALERT_2
@ MCP9600_ALERT_3
@ MCP9600_ALERT_1
@ MCP9600_ALERT_4
@ MCP9600_BOOL_FALSE
@ MCP9600_TEMPERATURE_MAINTAIN_DETECT_HOT_JUNCTION
@ MCP9600_DETECT_EDGE_FALLING
uint8_t mcp9600_interface_iic_deinit(void)
interface iic bus deinit
uint8_t mcp9600_interface_iic_write_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write command
void mcp9600_interface_debug_print(const char *const fmt,...)
interface print format data
void mcp9600_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t mcp9600_interface_iic_init(void)
interface iic bus init
uint8_t mcp9600_interface_iic_read_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read command
uint8_t mcp9600_read_test(mcp9600_address_t addr_pin, mcp9600_thermocouple_type_t type, uint32_t times)
read test
uint32_t driver_version
char manufacturer_name[32]