LibDriver BMM150
Loading...
Searching...
No Matches
driver_bmm150_read_test.c
Go to the documentation of this file.
1
36
38
39static bmm150_handle_t gs_handle;
40
51uint8_t bmm150_read_test(bmm150_interface_t interface, bmm150_address_t addr_pin, uint32_t times)
52{
53 uint8_t res;
54 uint32_t i;
55 bmm150_info_t info;
56
57 /* link interface function */
70
71 /* get information */
72 res = bmm150_info(&info);
73 if (res != 0)
74 {
75 bmm150_interface_debug_print("bmm150: get info failed.\n");
76
77 return 1;
78 }
79 else
80 {
81 /* print chip info */
82 bmm150_interface_debug_print("bmm150: chip is %s.\n", info.chip_name);
83 bmm150_interface_debug_print("bmm150: manufacturer is %s.\n", info.manufacturer_name);
84 bmm150_interface_debug_print("bmm150: interface is %s.\n", info.interface);
85 bmm150_interface_debug_print("bmm150: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
86 bmm150_interface_debug_print("bmm150: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
87 bmm150_interface_debug_print("bmm150: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
88 bmm150_interface_debug_print("bmm150: max current is %0.2fmA.\n", info.max_current_ma);
89 bmm150_interface_debug_print("bmm150: max temperature is %0.1fC.\n", info.temperature_max);
90 bmm150_interface_debug_print("bmm150: min temperature is %0.1fC.\n", info.temperature_min);
91 }
92
93 /* start read test */
94 bmm150_interface_debug_print("bmm150: start read test.\n");
95
96 /* set the interface */
97 res = bmm150_set_interface(&gs_handle, interface);
98 if (res != 0)
99 {
100 bmm150_interface_debug_print("bmm150: set interface failed.\n");
101
102 return 1;
103 }
104
105 /* set the address pin */
106 res = bmm150_set_addr_pin(&gs_handle, addr_pin);
107 if (res != 0)
108 {
109 bmm150_interface_debug_print("bmm150: set addr pin failed.\n");
110
111 return 1;
112 }
113
114 /* init bmm150 */
115 res = bmm150_init(&gs_handle);
116 if (res != 0)
117 {
118 bmm150_interface_debug_print("bmm150: init failed.\n");
119
120 return 1;
121 }
122
123 /* power on */
124 res = bmm150_set_power_on(&gs_handle, BMM150_BOOL_TRUE);
125 if (res != 0)
126 {
127 bmm150_interface_debug_print("bmm150: set power on failed.\n");
128 (void)bmm150_deinit(&gs_handle);
129
130 return 1;
131 }
132
133 /* set advanced self test normal mode */
135 if (res != 0)
136 {
137 bmm150_interface_debug_print("bmm150: set advanced self test failed.\n");
138 (void)bmm150_deinit(&gs_handle);
139
140 return 1;
141 }
142
143 /* disable self test */
144 res = bmm150_set_self_test(&gs_handle, BMM150_BOOL_FALSE);
145 if (res != 0)
146 {
147 bmm150_interface_debug_print("bmm150: set self test failed.\n");
148 (void)bmm150_deinit(&gs_handle);
149
150 return 1;
151 }
152
153 /* disable data overrun */
155 if (res != 0)
156 {
157 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
158 (void)bmm150_deinit(&gs_handle);
159
160 return 1;
161 }
162
163 /* disable overflow */
165 if (res != 0)
166 {
167 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
168 (void)bmm150_deinit(&gs_handle);
169
170 return 1;
171 }
172
173 /* disable high threshold z */
175 if (res != 0)
176 {
177 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
178 (void)bmm150_deinit(&gs_handle);
179
180 return 1;
181 }
182
183 /* disable high threshold y */
185 if (res != 0)
186 {
187 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
188 (void)bmm150_deinit(&gs_handle);
189
190 return 1;
191 }
192
193 /* disable high threshold x */
195 if (res != 0)
196 {
197 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
198 (void)bmm150_deinit(&gs_handle);
199
200 return 1;
201 }
202
203 /* disable low threshold z */
205 if (res != 0)
206 {
207 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
208 (void)bmm150_deinit(&gs_handle);
209
210 return 1;
211 }
212
213 /* disable low threshold y */
215 if (res != 0)
216 {
217 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
218 (void)bmm150_deinit(&gs_handle);
219
220 return 1;
221 }
222
223 /* disable low threshold x */
225 if (res != 0)
226 {
227 bmm150_interface_debug_print("bmm150: set interrupt failed.\n");
228 (void)bmm150_deinit(&gs_handle);
229
230 return 1;
231 }
232
233 /* disable data ready pin */
235 if (res != 0)
236 {
237 bmm150_interface_debug_print("bmm150: set data ready pin failed.\n");
238 (void)bmm150_deinit(&gs_handle);
239
240 return 1;
241 }
242
243 /* disable interrupt pin */
245 if (res != 0)
246 {
247 bmm150_interface_debug_print("bmm150: set interrupt pin failed.\n");
248 (void)bmm150_deinit(&gs_handle);
249
250 return 1;
251 }
252
253 /* enable channel z */
254 res = bmm150_set_channel_z(&gs_handle, BMM150_BOOL_TRUE);
255 if (res != 0)
256 {
257 bmm150_interface_debug_print("bmm150: set channel z failed.\n");
258 (void)bmm150_deinit(&gs_handle);
259
260 return 1;
261 }
262
263 /* enable channel y */
264 res = bmm150_set_channel_y(&gs_handle, BMM150_BOOL_TRUE);
265 if (res != 0)
266 {
267 bmm150_interface_debug_print("bmm150: set channel y failed.\n");
268 (void)bmm150_deinit(&gs_handle);
269
270 return 1;
271 }
272
273 /* enable channel x */
274 res = bmm150_set_channel_x(&gs_handle, BMM150_BOOL_TRUE);
275 if (res != 0)
276 {
277 bmm150_interface_debug_print("bmm150: set channel x failed.\n");
278 (void)bmm150_deinit(&gs_handle);
279
280 return 1;
281 }
282
283 /* set repxy number */
284 res = bmm150_set_repxy_number(&gs_handle, 9);
285 if (res != 0)
286 {
287 bmm150_interface_debug_print("bmm150: set repxy number failed.\n");
288 (void)bmm150_deinit(&gs_handle);
289
290 return 1;
291 }
292
293 /* set repz number */
294 res = bmm150_set_repz_number(&gs_handle, 15);
295 if (res != 0)
296 {
297 bmm150_interface_debug_print("bmm150: set repz number failed.\n");
298 (void)bmm150_deinit(&gs_handle);
299
300 return 1;
301 }
302
303 /* continuous read test */
304 bmm150_interface_debug_print("bmm150: continuous read test.\n");
305
306 /* set normal mode */
307 res = bmm150_set_mode(&gs_handle, BMM150_MODE_NORMAL);
308 if (res != 0)
309 {
310 bmm150_interface_debug_print("bmm150: set mode failed.\n");
311 (void)bmm150_deinit(&gs_handle);
312
313 return 1;
314 }
315
316 /* set data rate 2hz */
318 if (res != 0)
319 {
320 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
321 (void)bmm150_deinit(&gs_handle);
322
323 return 1;
324 }
325 bmm150_interface_debug_print("bmm150: set data rate 2hz.\n");
326
327 for (i = 0; i < times; i++)
328 {
329 int16_t raw[3];
330 float ut[3];
331
332 /* delay 1000ms */
334
335 /* read data */
336 res = bmm150_read(&gs_handle, raw, ut);
337 if (res != 0)
338 {
339 bmm150_interface_debug_print("bmm150: read failed.\n");
340 (void)bmm150_deinit(&gs_handle);
341
342 return 1;
343 }
344
345 /* output */
346 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
347 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
348 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
349 }
350
351 /* set data rate 6hz */
353 if (res != 0)
354 {
355 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
356 (void)bmm150_deinit(&gs_handle);
357
358 return 1;
359 }
360 bmm150_interface_debug_print("bmm150: set data rate 6hz.\n");
361
362 for (i = 0; i < times; i++)
363 {
364 int16_t raw[3];
365 float ut[3];
366
367 /* delay 1000ms */
369
370 /* read data */
371 res = bmm150_read(&gs_handle, raw, ut);
372 if (res != 0)
373 {
374 bmm150_interface_debug_print("bmm150: read failed.\n");
375 (void)bmm150_deinit(&gs_handle);
376
377 return 1;
378 }
379
380 /* output */
381 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
382 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
383 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
384 }
385
386 /* set data rate 8hz */
388 if (res != 0)
389 {
390 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
391 (void)bmm150_deinit(&gs_handle);
392
393 return 1;
394 }
395 bmm150_interface_debug_print("bmm150: set data rate 8hz.\n");
396
397 for (i = 0; i < times; i++)
398 {
399 int16_t raw[3];
400 float ut[3];
401
402 /* delay 1000ms */
404
405 /* read data */
406 res = bmm150_read(&gs_handle, raw, ut);
407 if (res != 0)
408 {
409 bmm150_interface_debug_print("bmm150: read failed.\n");
410 (void)bmm150_deinit(&gs_handle);
411
412 return 1;
413 }
414
415 /* output */
416 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
417 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
418 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
419 }
420
421 /* set data rate 10hz */
423 if (res != 0)
424 {
425 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
426 (void)bmm150_deinit(&gs_handle);
427
428 return 1;
429 }
430 bmm150_interface_debug_print("bmm150: set data rate 10hz.\n");
431
432 for (i = 0; i < times; i++)
433 {
434 int16_t raw[3];
435 float ut[3];
436
437 /* delay 1000ms */
439
440 /* read data */
441 res = bmm150_read(&gs_handle, raw, ut);
442 if (res != 0)
443 {
444 bmm150_interface_debug_print("bmm150: read failed.\n");
445 (void)bmm150_deinit(&gs_handle);
446
447 return 1;
448 }
449
450 /* output */
451 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
452 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
453 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
454 }
455
456 /* set data rate 15hz */
458 if (res != 0)
459 {
460 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
461 (void)bmm150_deinit(&gs_handle);
462
463 return 1;
464 }
465 bmm150_interface_debug_print("bmm150: set data rate 15hz.\n");
466
467 for (i = 0; i < times; i++)
468 {
469 int16_t raw[3];
470 float ut[3];
471
472 /* delay 1000ms */
474
475 /* read data */
476 res = bmm150_read(&gs_handle, raw, ut);
477 if (res != 0)
478 {
479 bmm150_interface_debug_print("bmm150: read failed.\n");
480 (void)bmm150_deinit(&gs_handle);
481
482 return 1;
483 }
484
485 /* output */
486 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
487 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
488 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
489 }
490
491 /* set data rate 20hz */
493 if (res != 0)
494 {
495 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
496 (void)bmm150_deinit(&gs_handle);
497
498 return 1;
499 }
500 bmm150_interface_debug_print("bmm150: set data rate 20hz.\n");
501
502 for (i = 0; i < times; i++)
503 {
504 int16_t raw[3];
505 float ut[3];
506
507 /* delay 1000ms */
509
510 /* read data */
511 res = bmm150_read(&gs_handle, raw, ut);
512 if (res != 0)
513 {
514 bmm150_interface_debug_print("bmm150: read failed.\n");
515 (void)bmm150_deinit(&gs_handle);
516
517 return 1;
518 }
519
520 /* output */
521 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
522 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
523 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
524 }
525
526 /* set data rate 25hz */
528 if (res != 0)
529 {
530 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
531 (void)bmm150_deinit(&gs_handle);
532
533 return 1;
534 }
535 bmm150_interface_debug_print("bmm150: set data rate 25hz.\n");
536
537 for (i = 0; i < times; i++)
538 {
539 int16_t raw[3];
540 float ut[3];
541
542 /* delay 1000ms */
544
545 /* read data */
546 res = bmm150_read(&gs_handle, raw, ut);
547 if (res != 0)
548 {
549 bmm150_interface_debug_print("bmm150: read failed.\n");
550 (void)bmm150_deinit(&gs_handle);
551
552 return 1;
553 }
554
555 /* output */
556 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
557 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
558 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
559 }
560
561 /* set data rate 30hz */
563 if (res != 0)
564 {
565 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
566 (void)bmm150_deinit(&gs_handle);
567
568 return 1;
569 }
570 bmm150_interface_debug_print("bmm150: set data rate 30hz.\n");
571
572 for (i = 0; i < times; i++)
573 {
574 int16_t raw[3];
575 float ut[3];
576
577 /* delay 1000ms */
579
580 /* read data */
581 res = bmm150_read(&gs_handle, raw, ut);
582 if (res != 0)
583 {
584 bmm150_interface_debug_print("bmm150: read failed.\n");
585 (void)bmm150_deinit(&gs_handle);
586
587 return 1;
588 }
589
590 /* output */
591 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
592 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
593 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
594 }
595
596 /* single read test */
597 bmm150_interface_debug_print("bmm150: single read test.\n");
598
599 /* set sleep mode */
600 res = bmm150_set_mode(&gs_handle, BMM150_MODE_SLEEP);
601 if (res != 0)
602 {
603 bmm150_interface_debug_print("bmm150: set mode failed.\n");
604 (void)bmm150_deinit(&gs_handle);
605
606 return 1;
607 }
608
609 /* set data rate 2hz */
611 if (res != 0)
612 {
613 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
614 (void)bmm150_deinit(&gs_handle);
615
616 return 1;
617 }
618 bmm150_interface_debug_print("bmm150: set data rate 2hz.\n");
619
620 for (i = 0; i < times; i++)
621 {
622 int16_t raw[3];
623 float ut[3];
624
625 /* delay 1000ms */
627
628 /* read data */
629 res = bmm150_read(&gs_handle, raw, ut);
630 if (res != 0)
631 {
632 bmm150_interface_debug_print("bmm150: read failed.\n");
633 (void)bmm150_deinit(&gs_handle);
634
635 return 1;
636 }
637
638 /* output */
639 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
640 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
641 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
642 }
643
644 /* set data rate 6hz */
646 if (res != 0)
647 {
648 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
649 (void)bmm150_deinit(&gs_handle);
650
651 return 1;
652 }
653 bmm150_interface_debug_print("bmm150: set data rate 6hz.\n");
654
655 for (i = 0; i < times; i++)
656 {
657 int16_t raw[3];
658 float ut[3];
659
660 /* delay 1000ms */
662
663 /* read data */
664 res = bmm150_read(&gs_handle, raw, ut);
665 if (res != 0)
666 {
667 bmm150_interface_debug_print("bmm150: read failed.\n");
668 (void)bmm150_deinit(&gs_handle);
669
670 return 1;
671 }
672
673 /* output */
674 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
675 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
676 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
677 }
678
679 /* set data rate 8hz */
681 if (res != 0)
682 {
683 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
684 (void)bmm150_deinit(&gs_handle);
685
686 return 1;
687 }
688 bmm150_interface_debug_print("bmm150: set data rate 8hz.\n");
689
690 for (i = 0; i < times; i++)
691 {
692 int16_t raw[3];
693 float ut[3];
694
695 /* delay 1000ms */
697
698 /* read data */
699 res = bmm150_read(&gs_handle, raw, ut);
700 if (res != 0)
701 {
702 bmm150_interface_debug_print("bmm150: read failed.\n");
703 (void)bmm150_deinit(&gs_handle);
704
705 return 1;
706 }
707
708 /* output */
709 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
710 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
711 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
712 }
713
714 /* set data rate 10hz */
716 if (res != 0)
717 {
718 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
719 (void)bmm150_deinit(&gs_handle);
720
721 return 1;
722 }
723 bmm150_interface_debug_print("bmm150: set data rate 10hz.\n");
724
725 for (i = 0; i < times; i++)
726 {
727 int16_t raw[3];
728 float ut[3];
729
730 /* delay 1000ms */
732
733 /* read data */
734 res = bmm150_read(&gs_handle, raw, ut);
735 if (res != 0)
736 {
737 bmm150_interface_debug_print("bmm150: read failed.\n");
738 (void)bmm150_deinit(&gs_handle);
739
740 return 1;
741 }
742
743 /* output */
744 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
745 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
746 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
747 }
748
749 /* set data rate 15hz */
751 if (res != 0)
752 {
753 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
754 (void)bmm150_deinit(&gs_handle);
755
756 return 1;
757 }
758 bmm150_interface_debug_print("bmm150: set data rate 15hz.\n");
759
760 for (i = 0; i < times; i++)
761 {
762 int16_t raw[3];
763 float ut[3];
764
765 /* delay 1000ms */
767
768 /* read data */
769 res = bmm150_read(&gs_handle, raw, ut);
770 if (res != 0)
771 {
772 bmm150_interface_debug_print("bmm150: read failed.\n");
773 (void)bmm150_deinit(&gs_handle);
774
775 return 1;
776 }
777
778 /* output */
779 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
780 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
781 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
782 }
783
784 /* set data rate 20hz */
786 if (res != 0)
787 {
788 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
789 (void)bmm150_deinit(&gs_handle);
790
791 return 1;
792 }
793 bmm150_interface_debug_print("bmm150: set data rate 20hz.\n");
794
795 for (i = 0; i < times; i++)
796 {
797 int16_t raw[3];
798 float ut[3];
799
800 /* delay 1000ms */
802
803 /* read data */
804 res = bmm150_read(&gs_handle, raw, ut);
805 if (res != 0)
806 {
807 bmm150_interface_debug_print("bmm150: read failed.\n");
808 (void)bmm150_deinit(&gs_handle);
809
810 return 1;
811 }
812
813 /* output */
814 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
815 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
816 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
817 }
818
819 /* set data rate 25hz */
821 if (res != 0)
822 {
823 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
824 (void)bmm150_deinit(&gs_handle);
825
826 return 1;
827 }
828 bmm150_interface_debug_print("bmm150: set data rate 25hz.\n");
829
830 for (i = 0; i < times; i++)
831 {
832 int16_t raw[3];
833 float ut[3];
834
835 /* delay 1000ms */
837
838 /* read data */
839 res = bmm150_read(&gs_handle, raw, ut);
840 if (res != 0)
841 {
842 bmm150_interface_debug_print("bmm150: read failed.\n");
843 (void)bmm150_deinit(&gs_handle);
844
845 return 1;
846 }
847
848 /* output */
849 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
850 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
851 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
852 }
853
854 /* set data rate 30hz */
856 if (res != 0)
857 {
858 bmm150_interface_debug_print("bmm150: set data rate failed.\n");
859 (void)bmm150_deinit(&gs_handle);
860
861 return 1;
862 }
863 bmm150_interface_debug_print("bmm150: set data rate 30hz.\n");
864
865 for (i = 0; i < times; i++)
866 {
867 int16_t raw[3];
868 float ut[3];
869
870 /* delay 1000ms */
872
873 /* read data */
874 res = bmm150_read(&gs_handle, raw, ut);
875 if (res != 0)
876 {
877 bmm150_interface_debug_print("bmm150: read failed.\n");
878 (void)bmm150_deinit(&gs_handle);
879
880 return 1;
881 }
882
883 /* output */
884 bmm150_interface_debug_print("bmm150: x is %0.2fuT.\n", ut[0]);
885 bmm150_interface_debug_print("bmm150: y is %0.2fuT.\n", ut[1]);
886 bmm150_interface_debug_print("bmm150: z is %0.2fuT.\n", ut[2]);
887 }
888
889 /* finish read test */
890 bmm150_interface_debug_print("bmm150: finish read test.\n");
891 (void)bmm150_deinit(&gs_handle);
892
893 return 0;
894}
driver bmm150 read test header file
uint8_t bmm150_deinit(bmm150_handle_t *handle)
close the chip
uint8_t bmm150_init(bmm150_handle_t *handle)
initialize the chip
uint8_t bmm150_set_data_ready_pin(bmm150_handle_t *handle, bmm150_bool_t enable)
enable or disable data ready pin
uint8_t bmm150_set_repz_number(bmm150_handle_t *handle, uint8_t number)
set repz number
uint8_t bmm150_set_interrupt_pin(bmm150_handle_t *handle, bmm150_bool_t enable)
enable or disable interrupt pin
uint8_t bmm150_set_addr_pin(bmm150_handle_t *handle, bmm150_address_t addr_pin)
set the iic address pin
uint8_t bmm150_set_advanced_self_test(bmm150_handle_t *handle, bmm150_advanced_self_test_t test)
set advanced self test
uint8_t bmm150_set_interface(bmm150_handle_t *handle, bmm150_interface_t interface)
set the chip interface
bmm150_interface_t
bmm150 interface enumeration definition
uint8_t bmm150_set_channel_y(bmm150_handle_t *handle, bmm150_bool_t enable)
enable or disable channel y
uint8_t bmm150_info(bmm150_info_t *info)
get chip's information
uint8_t bmm150_set_mode(bmm150_handle_t *handle, bmm150_mode_t mode)
set mode
uint8_t bmm150_set_power_on(bmm150_handle_t *handle, bmm150_bool_t enable)
set power on
struct bmm150_handle_s bmm150_handle_t
bmm150 handle structure definition
uint8_t bmm150_set_self_test(bmm150_handle_t *handle, bmm150_bool_t enable)
enable or disable self test
uint8_t bmm150_read(bmm150_handle_t *handle, int16_t raw[3], float ut[3])
read data
uint8_t bmm150_set_channel_z(bmm150_handle_t *handle, bmm150_bool_t enable)
enable or disable channel z
uint8_t bmm150_set_repxy_number(bmm150_handle_t *handle, uint8_t number)
set repxy number
struct bmm150_info_s bmm150_info_t
bmm150 information structure definition
bmm150_address_t
bmm150 address enumeration definition
uint8_t bmm150_set_interrupt(bmm150_handle_t *handle, bmm150_interrupt_status_t status, bmm150_bool_t enable)
enable or disable interrupt
uint8_t bmm150_set_data_rate(bmm150_handle_t *handle, bmm150_data_rate_t rate)
set data rate
uint8_t bmm150_set_channel_x(bmm150_handle_t *handle, bmm150_bool_t enable)
enable or disable channel x
@ BMM150_DATA_RATE_30HZ
@ BMM150_DATA_RATE_25HZ
@ BMM150_DATA_RATE_2HZ
@ BMM150_DATA_RATE_15HZ
@ BMM150_DATA_RATE_20HZ
@ BMM150_DATA_RATE_10HZ
@ BMM150_DATA_RATE_6HZ
@ BMM150_DATA_RATE_8HZ
@ BMM150_INTERRUPT_STATUS_HIGH_THRESHOLD_Z
@ BMM150_INTERRUPT_STATUS_LOW_THRESHOLD_Y
@ BMM150_INTERRUPT_STATUS_OVERFLOW
@ BMM150_INTERRUPT_STATUS_HIGH_THRESHOLD_Y
@ BMM150_INTERRUPT_STATUS_DATA_OVERRUN
@ BMM150_INTERRUPT_STATUS_LOW_THRESHOLD_X
@ BMM150_INTERRUPT_STATUS_HIGH_THRESHOLD_X
@ BMM150_INTERRUPT_STATUS_LOW_THRESHOLD_Z
@ BMM150_BOOL_FALSE
@ BMM150_BOOL_TRUE
@ BMM150_ADVANCED_SELF_TEST_NORMAL
@ BMM150_MODE_SLEEP
@ BMM150_MODE_NORMAL
uint8_t bmm150_interface_spi_init(void)
interface spi bus init
uint8_t bmm150_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
uint8_t bmm150_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t bmm150_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void bmm150_interface_receive_callback(uint8_t type)
interface receive callback
uint8_t bmm150_interface_iic_init(void)
interface iic bus init
uint8_t bmm150_interface_spi_deinit(void)
interface spi bus deinit
uint8_t bmm150_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t bmm150_interface_iic_deinit(void)
interface iic bus deinit
void bmm150_interface_debug_print(const char *const fmt,...)
interface print format data
void bmm150_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t bmm150_read_test(bmm150_interface_t interface, bmm150_address_t addr_pin, uint32_t times)
read test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]