LibDriver ADXL345
Loading...
Searching...
No Matches
driver_adxl345_read_test.c
Go to the documentation of this file.
1
37
39
40static adxl345_handle_t gs_handle;
41static int16_t gs_raw_test[20][3];
42static float gs_test[20][3];
43
54uint8_t adxl345_read_test(adxl345_interface_t interface, adxl345_address_t addr_pin, uint32_t times)
55{
56 uint8_t res, i;
57 int8_t reg;
58 adxl345_info_t info;
59
60 /* link interface function */
73
74 /* get information */
75 res = adxl345_info(&info);
76 if (res != 0)
77 {
78 adxl345_interface_debug_print("adxl345: get info failed.\n");
79
80 return 1;
81 }
82 else
83 {
84 /* print chip info */
85 adxl345_interface_debug_print("adxl345: chip is %s.\n", info.chip_name);
86 adxl345_interface_debug_print("adxl345: manufacturer is %s.\n", info.manufacturer_name);
87 adxl345_interface_debug_print("adxl345: interface is %s.\n", info.interface);
88 adxl345_interface_debug_print("adxl345: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
89 adxl345_interface_debug_print("adxl345: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
90 adxl345_interface_debug_print("adxl345: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
91 adxl345_interface_debug_print("adxl345: max current is %0.2fmA.\n", info.max_current_ma);
92 adxl345_interface_debug_print("adxl345: max temperature is %0.1fC.\n", info.temperature_max);
93 adxl345_interface_debug_print("adxl345: min temperature is %0.1fC.\n", info.temperature_min);
94 }
95
96 /* set the interface */
97 res = adxl345_set_interface(&gs_handle, interface);
98 if (res != 0)
99 {
100 adxl345_interface_debug_print("adxl345: set interface failed.\n");
101
102 return 1;
103 }
104
105 /* set the address pin */
106 res = adxl345_set_addr_pin(&gs_handle, addr_pin);
107 if (res != 0)
108 {
109 adxl345_interface_debug_print("adxl345: set addr pin failed.\n");
110
111 return 1;
112 }
113
114 /* init adxl345 */
115 res = adxl345_init(&gs_handle);
116 if (res != 0)
117 {
118 adxl345_interface_debug_print("adxl345: init failed.\n");
119
120 return 1;
121 }
122
123 /* set the spi 4 type */
124 res = adxl345_set_spi_wire(&gs_handle, ADXL345_SPI_WIRE_4);
125 if (res != 0)
126 {
127 adxl345_interface_debug_print("adxl345: set spi wire failed.\n");
128 (void)adxl345_deinit(&gs_handle);
129
130 return 1;
131 }
132
133 /* set interrupt low */
135 if (res != 0)
136 {
137 adxl345_interface_debug_print("adxl345: set interrupt active level failed.\n");
138 (void)adxl345_deinit(&gs_handle);
139
140 return 1;
141 }
142
143 /* disable auto sleep */
145 if (res != 0)
146 {
147 adxl345_interface_debug_print("adxl345: set auto sleep failed.\n");
148 (void)adxl345_deinit(&gs_handle);
149
150 return 1;
151 }
152
153 /* disable sleep */
154 res = adxl345_set_sleep(&gs_handle, ADXL345_BOOL_FALSE);
155 if (res != 0)
156 {
157 adxl345_interface_debug_print("adxl345: set sleep failed.\n");
158 (void)adxl345_deinit(&gs_handle);
159
160 return 1;
161 }
162
163 /* set sleep 1Hz */
165 if (res != 0)
166 {
167 adxl345_interface_debug_print("adxl345: set sleep frequency failed.\n");
168 (void)adxl345_deinit(&gs_handle);
169
170 return 1;
171 }
172
173 /* set bypass mode */
174 res = adxl345_set_mode(&gs_handle, ADXL345_MODE_BYPASS);
175 if (res != 0)
176 {
177 adxl345_interface_debug_print("adxl345: set mode failed.\n");
178 (void)adxl345_deinit(&gs_handle);
179
180 return 1;
181 }
182
183 /* set trigger pin int 2 */
185 if (res != 0)
186 {
187 adxl345_interface_debug_print("adxl345: set trigger pin failed.\n");
188 (void)adxl345_deinit(&gs_handle);
189
190 return 1;
191 }
192
193 /* set watermark 16 level */
194 res = adxl345_set_watermark(&gs_handle, 16);
195 if (res != 0)
196 {
197 adxl345_interface_debug_print("adxl345: set watermark failed.\n");
198 (void)adxl345_deinit(&gs_handle);
199
200 return 1;
201 }
202
203 /* set offset */
204 res = adxl345_offset_convert_to_register(&gs_handle, 0.0f, (int8_t *)&reg);
205 if (res != 0)
206 {
207 adxl345_interface_debug_print("adxl345: offset convert to register failed.\n");
208 (void)adxl345_deinit(&gs_handle);
209
210 return 1;
211 }
212
213 /* set offset 0 */
214 res = adxl345_set_offset(&gs_handle, reg, reg, reg);
215 if (res != 0)
216 {
217 adxl345_interface_debug_print("adxl345: set offset failed.\n");
218 (void)adxl345_deinit(&gs_handle);
219
220 return 1;
221 }
222
223 /* set threshold 3g */
224 res = adxl345_tap_threshold_convert_to_register(&gs_handle, 3.0f, (uint8_t *)&reg);
225 if (res != 0)
226 {
227 adxl345_interface_debug_print("adxl345: tap threshold convert to register failed.\n");
228 (void)adxl345_deinit(&gs_handle);
229
230 return 1;
231 }
232
233 /* set tap threshold */
234 res = adxl345_set_tap_threshold(&gs_handle, reg);
235 if (res != 0)
236 {
237 adxl345_interface_debug_print("adxl345: set tap threshold failed.\n");
238 (void)adxl345_deinit(&gs_handle);
239
240 return 1;
241 }
242
243 /* set 10 ms */
244 res = adxl345_duration_convert_to_register(&gs_handle, 10 * 1000, (uint8_t *)&reg);
245 if (res != 0)
246 {
247 adxl345_interface_debug_print("adxl345: duration convert to register failed.\n");
248 (void)adxl345_deinit(&gs_handle);
249
250 return 1;
251 }
252
253 /* set duration */
254 res = adxl345_set_duration(&gs_handle, reg);
255 if (res != 0)
256 {
257 adxl345_interface_debug_print("adxl345: set duration failed.\n");
258 (void)adxl345_deinit(&gs_handle);
259
260 return 1;
261 }
262
263 /* set 20 ms */
264 res = adxl345_latent_convert_to_register(&gs_handle, 20.0f, (uint8_t *)&reg);
265 if (res != 0)
266 {
267 adxl345_interface_debug_print("adxl345: latent convert to register failed.\n");
268 (void)adxl345_deinit(&gs_handle);
269
270 return 1;
271 }
272
273 /* set latent */
274 res = adxl345_set_latent(&gs_handle, reg);
275 if (res != 0)
276 {
277 adxl345_interface_debug_print("adxl345: set latent failed.\n");
278 (void)adxl345_deinit(&gs_handle);
279
280 return 1;
281 }
282
283 /* set 80 ms */
284 res = adxl345_window_convert_to_register(&gs_handle, 80.0f, (uint8_t *)&reg);
285 if (res != 0)
286 {
287 adxl345_interface_debug_print("adxl345: window convert to register failed.\n");
288 (void)adxl345_deinit(&gs_handle);
289
290 return 1;
291 }
292
293 /* set windows time */
294 res = adxl345_set_window(&gs_handle, reg);
295 if (res != 0)
296 {
297 adxl345_interface_debug_print("adxl345: set window failed.\n");
298 (void)adxl345_deinit(&gs_handle);
299
300 return 1;
301 }
302
303 /* set x axis */
305 if (res != 0)
306 {
307 adxl345_interface_debug_print("adxl345: set tap axis failed.\n");
308 (void)adxl345_deinit(&gs_handle);
309
310 return 1;
311 }
312
313 /* set y axis */
315 if (res != 0)
316 {
317 adxl345_interface_debug_print("adxl345: set tap axis failed.\n");
318 (void)adxl345_deinit(&gs_handle);
319
320 return 1;
321 }
322
323 /* set z axis */
325 if (res != 0)
326 {
327 adxl345_interface_debug_print("adxl345: set tap axis failed.\n");
328 (void)adxl345_deinit(&gs_handle);
329
330 return 1;
331 }
332
333 /* disable suppress */
335 if (res != 0)
336 {
337 adxl345_interface_debug_print("adxl345: set tap suppress failed.\n");
338 (void)adxl345_deinit(&gs_handle);
339
340 return 1;
341 }
342
343 /* map int 1 */
345 if (res != 0)
346 {
347 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
348 (void)adxl345_deinit(&gs_handle);
349
350 return 1;
351 }
352
353 /* set single tap */
355 if (res != 0)
356 {
357 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
358 (void)adxl345_deinit(&gs_handle);
359
360 return 1;
361 }
362
363 /* map int 1 */
365 if (res != 0)
366 {
367 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
368 (void)adxl345_deinit(&gs_handle);
369
370 return 1;
371 }
372
373 /* set double tap */
375 if (res != 0)
376 {
377 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
378 (void)adxl345_deinit(&gs_handle);
379
380 return 1;
381 }
382
383 /* link activity and inactivity */
385 if (res != 0)
386 {
387 adxl345_interface_debug_print("adxl345: set link activity inactivity failed.\n");
388 (void)adxl345_deinit(&gs_handle);
389
390 return 1;
391 }
392 res = adxl345_action_threshold_convert_to_register(&gs_handle, 2.0f, (uint8_t *)&reg);
393 if (res != 0)
394 {
395 adxl345_interface_debug_print("adxl345: action threshold convert to register failed.\n");
396 (void)adxl345_deinit(&gs_handle);
397
398 return 1;
399 }
400
401 /* set action */
402 res = adxl345_set_action_threshold(&gs_handle, reg);
403 if (res != 0)
404 {
405 adxl345_interface_debug_print("adxl345: set action threshold failed.\n");
406 (void)adxl345_deinit(&gs_handle);
407
408 return 1;
409 }
410 res = adxl345_inaction_threshold_convert_to_register(&gs_handle, 1.0f, (uint8_t *)&reg);
411 if (res != 0)
412 {
413 adxl345_interface_debug_print("adxl345: inaction threshold convert to register failed.\n");
414 (void)adxl345_deinit(&gs_handle);
415
416 return 1;
417 }
418
419 /* set inaction threshold */
420 res = adxl345_set_inaction_threshold(&gs_handle, reg);
421 if (res != 0)
422 {
423 adxl345_interface_debug_print("adxl345: set inaction threshold failed.\n");
424 (void)adxl345_deinit(&gs_handle);
425
426 return 1;
427 }
428
429 /* set 3 s */
430 res = adxl345_inaction_time_convert_to_register(&gs_handle, 3, (uint8_t *)&reg);
431 if (res != 0)
432 {
433 adxl345_interface_debug_print("adxl345: inaction time convert to register failed.\n");
434 (void)adxl345_deinit(&gs_handle);
435
436 return 1;
437 }
438
439 /* set inaction time */
440 res = adxl345_set_inaction_time(&gs_handle, reg);
441 if (res != 0)
442 {
443 adxl345_interface_debug_print("adxl345: set inaction time failed.\n");
444 (void)adxl345_deinit(&gs_handle);
445
446 return 1;
447 }
448
449 /* set action x */
451 if (res != 0)
452 {
453 adxl345_interface_debug_print("adxl345: set action inaction failed.\n");
454 (void)adxl345_deinit(&gs_handle);
455
456 return 1;
457 }
458
459 /* set action y */
461 if (res != 0)
462 {
463 adxl345_interface_debug_print("adxl345: set action inaction failed.\n");
464 (void)adxl345_deinit(&gs_handle);
465
466 return 1;
467 }
468
469 /* set action z */
471 if (res != 0)
472 {
473 adxl345_interface_debug_print("adxl345: set action inaction failed.\n");
474 (void)adxl345_deinit(&gs_handle);
475
476 return 1;
477 }
478
479 /* set inaction x */
481 if (res != 0)
482 {
483 adxl345_interface_debug_print("adxl345: set action inaction failed.\n");
484 (void)adxl345_deinit(&gs_handle);
485
486 return 1;
487 }
488
489 /* set inaction y */
491 if (res != 0)
492 {
493 adxl345_interface_debug_print("adxl345: set action inaction failed.\n");
494 (void)adxl345_deinit(&gs_handle);
495
496 return 1;
497 }
498
499 /* set inaction z */
501 if (res != 0)
502 {
503 adxl345_interface_debug_print("adxl345: set action inaction failed.\n");
504 (void)adxl345_deinit(&gs_handle);
505
506 return 1;
507 }
508
509 /* set action ac coupled */
511 if (res != 0)
512 {
513 adxl345_interface_debug_print("adxl345: set action coupled failed.\n");
514 (void)adxl345_deinit(&gs_handle);
515
516 return 1;
517 }
518
519 /* set inaction dc coupled */
521 if (res != 0)
522 {
523 adxl345_interface_debug_print("adxl345: set inaction coupled failed.\n");
524 (void)adxl345_deinit(&gs_handle);
525
526 return 1;
527 }
528
529 /* map int 1 */
531 if (res != 0)
532 {
533 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
534 (void)adxl345_deinit(&gs_handle);
535
536 return 1;
537 }
538
539 /* set activity */
541 if (res != 0)
542 {
543 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
544 (void)adxl345_deinit(&gs_handle);
545
546 return 1;
547 }
548
549 /* map int 1 */
551 if (res != 0)
552 {
553 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
554 (void)adxl345_deinit(&gs_handle);
555
556 return 1;
557 }
558
559 /* set inactivity */
561 if (res != 0)
562 {
563 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
564 (void)adxl345_deinit(&gs_handle);
565
566 return 1;
567 }
568
569 /* set free fall */
570 res = adxl345_free_fall_threshold_convert_to_register(&gs_handle, 0.8f, (uint8_t *)&reg);
571 if (res != 0)
572 {
573 adxl345_interface_debug_print("adxl345: free fall threshold convert to register failed.\n");
574 (void)adxl345_deinit(&gs_handle);
575
576 return 1;
577 }
578
579 /* set free fall threshold */
580 res = adxl345_set_free_fall_threshold(&gs_handle, reg);
581 if (res != 0)
582 {
583 adxl345_interface_debug_print("adxl345: set free fall threshold failed.\n");
584 (void)adxl345_deinit(&gs_handle);
585
586 return 1;
587 }
588
589 /* set 10 ms */
590 res = adxl345_free_fall_time_convert_to_register(&gs_handle, 10, (uint8_t *)&reg);
591 if (res != 0)
592 {
593 adxl345_interface_debug_print("adxl345: free fall time convert to register failed.\n");
594 (void)adxl345_deinit(&gs_handle);
595
596 return 1;
597 }
598
599 /* set free fall time */
600 res = adxl345_set_free_fall_time(&gs_handle, reg);
601 if (res != 0)
602 {
603 adxl345_interface_debug_print("adxl345: set free fall time failed.\n");
604 (void)adxl345_deinit(&gs_handle);
605
606 return 1;
607 }
608
609 /* set interrupt 1 */
611 if (res != 0)
612 {
613 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
614 (void)adxl345_deinit(&gs_handle);
615
616 return 1;
617 }
618
619 /* set fall */
621 if (res != 0)
622 {
623 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
624 (void)adxl345_deinit(&gs_handle);
625
626 return 1;
627 }
628
629 /* set interrupt 1 */
631 if (res != 0)
632 {
633 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
634 (void)adxl345_deinit(&gs_handle);
635
636 return 1;
637 }
638
639 /* set data ready */
641 if (res != 0)
642 {
643 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
644 (void)adxl345_deinit(&gs_handle);
645
646 return 1;
647 }
648
649 /* set interrupt 1 */
651 if (res != 0)
652 {
653 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
654 (void)adxl345_deinit(&gs_handle);
655
656 return 1;
657 }
658
659 /* set data ready */
661 if (res != 0)
662 {
663 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
664 (void)adxl345_deinit(&gs_handle);
665
666 return 1;
667 }
668
669 /* set interrupt 1 */
671 if (res != 0)
672 {
673 adxl345_interface_debug_print("adxl345: set interrupt map failed.\n");
674 (void)adxl345_deinit(&gs_handle);
675
676 return 1;
677 }
678
679 /* set data ready */
681 if (res != 0)
682 {
683 adxl345_interface_debug_print("adxl345: set interrupt failed.\n");
684 (void)adxl345_deinit(&gs_handle);
685
686 return 1;
687 }
688
689 /* start read test */
690 adxl345_interface_debug_print("adxl345: start read test.\n");
691
692 /* set justify right */
693 adxl345_interface_debug_print("adxl345: set align right.\n");
695 if (res != 0)
696 {
697 adxl345_interface_debug_print("adxl345: set justify failed.\n");
698 (void)adxl345_deinit(&gs_handle);
699
700 return 1;
701 }
702
703 /* set 100 rate */
704 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_100);
705 if (res != 0)
706 {
707 adxl345_interface_debug_print("adxl345: set rate failed.\n");
708 (void)adxl345_deinit(&gs_handle);
709
710 return 1;
711 }
712
713 /* set full resolution */
715 if (res != 0)
716 {
717 adxl345_interface_debug_print("adxl345: set full resolution failed.\n");
718 (void)adxl345_deinit(&gs_handle);
719
720 return 1;
721 }
722
723 /* 2g */
724 adxl345_interface_debug_print("adxl345: set 2g range.\n");
725 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_2G);
726 if (res != 0)
727 {
728 adxl345_interface_debug_print("adxl345: set range failed.\n");
729 (void)adxl345_deinit(&gs_handle);
730
731 return 1;
732 }
733
734 /* start measure */
735 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
736 if (res != 0)
737 {
738 adxl345_interface_debug_print("adxl345: set measure failed.\n");
739 (void)adxl345_deinit(&gs_handle);
740
741 return 1;
742 }
744 for (i = 0; i < times; i++)
745 {
746 uint16_t len;
747
748 len = 1;
749
750 /* read data */
751 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
752 {
753 adxl345_interface_debug_print("adxl345: read failed.\n");
754 (void)adxl345_deinit(&gs_handle);
755
756 return 1;
757 }
758 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
759 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
760 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
762 }
763
764 /* stop measure */
765 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
766 if (res != 0)
767 {
768 adxl345_interface_debug_print("adxl345: set measure failed.\n");
769 (void)adxl345_deinit(&gs_handle);
770
771 return 1;
772 }
774
775 /* 4g */
776 adxl345_interface_debug_print("adxl345: set 4g range.\n");
777 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_4G);
778 if (res != 0)
779 {
780 adxl345_interface_debug_print("adxl345: set range failed.\n");
781 (void)adxl345_deinit(&gs_handle);
782
783 return 1;
784 }
785
786 /* start measure */
787 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
788 if (res != 0)
789 {
790 adxl345_interface_debug_print("adxl345: set measure failed.\n");
791 (void)adxl345_deinit(&gs_handle);
792
793 return 1;
794 }
796 for (i = 0; i < times; i++)
797 {
798 uint16_t len;
799
800 len = 1;
801
802 /* read data */
803 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
804 {
805 adxl345_interface_debug_print("adxl345: read failed.\n");
806 (void)adxl345_deinit(&gs_handle);
807
808 return 1;
809 }
810 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
811 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
812 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
814 }
815
816 /* stop measure */
817 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
818 if (res != 0)
819 {
820 adxl345_interface_debug_print("adxl345: set measure failed.\n");
821 (void)adxl345_deinit(&gs_handle);
822
823 return 1;
824 }
826
827 /* 8g */
828 adxl345_interface_debug_print("adxl345: set 8g range.\n");
829 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_8G);
830 if (res != 0)
831 {
832 adxl345_interface_debug_print("adxl345: set range failed.\n");
833 (void)adxl345_deinit(&gs_handle);
834
835 return 1;
836 }
837
838 /* start measure */
839 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
840 if (res != 0)
841 {
842 adxl345_interface_debug_print("adxl345: set measure failed.\n");
843 (void)adxl345_deinit(&gs_handle);
844
845 return 1;
846 }
848 for (i = 0; i < times; i++)
849 {
850 uint16_t len;
851
852 len = 1;
853
854 /* read data */
855 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
856 {
857 adxl345_interface_debug_print("adxl345: read failed.\n");
858 (void)adxl345_deinit(&gs_handle);
859
860 return 1;
861 }
862 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
863 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
864 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
866 }
867
868 /* stop measure */
869 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
870 if (res != 0)
871 {
872 adxl345_interface_debug_print("adxl345: set measure failed.\n");
873 (void)adxl345_deinit(&gs_handle);
874
875 return 1;
876 }
878
879 /* 16g */
880 adxl345_interface_debug_print("adxl345: set 16g range.\n");
881 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_16G);
882 if (res != 0)
883 {
884 adxl345_interface_debug_print("adxl345: set range failed.\n");
885 (void)adxl345_deinit(&gs_handle);
886
887 return 1;
888 }
889
890 /* start measure */
891 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
892 if (res != 0)
893 {
894 adxl345_interface_debug_print("adxl345: set measure failed.\n");
895 (void)adxl345_deinit(&gs_handle);
896
897 return 1;
898 }
900 for (i = 0; i < times; i++)
901 {
902 uint16_t len;
903
904 len = 1;
905
906 /* read data */
907 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
908 {
909 adxl345_interface_debug_print("adxl345: read failed.\n");
910 (void)adxl345_deinit(&gs_handle);
911
912 return 1;
913 }
914 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
915 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
916 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
918 }
919
920 /* stop measure */
921 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
922 if (res != 0)
923 {
924 adxl345_interface_debug_print("adxl345: set measure failed.\n");
925 (void)adxl345_deinit(&gs_handle);
926
927 return 1;
928 }
930
931 /* full resolution */
932 adxl345_interface_debug_print("adxl345: set full resolution.\n");
934 if (res != 0)
935 {
936 adxl345_interface_debug_print("adxl345: set full resolution failed.\n");
937 (void)adxl345_deinit(&gs_handle);
938
939 return 1;
940 }
941
942 /* start measure */
943 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
944 if (res != 0)
945 {
946 adxl345_interface_debug_print("adxl345: set measure failed.\n");
947 (void)adxl345_deinit(&gs_handle);
948
949 return 1;
950 }
952 for (i = 0; i < times; i++)
953 {
954 uint16_t len;
955
956 len = 1;
957
958 /* read data */
959 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
960 {
961 adxl345_interface_debug_print("adxl345: read failed.\n");
962 (void)adxl345_deinit(&gs_handle);
963
964 return 1;
965 }
966 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
967 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
968 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
970 }
971
972 /* stop measure */
973 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
974 if (res != 0)
975 {
976 adxl345_interface_debug_print("adxl345: set measure failed.\n");
977 (void)adxl345_deinit(&gs_handle);
978
979 return 1;
980 }
982
983 /* set align left */
984 adxl345_interface_debug_print("adxl345: set align left.\n");
985 res = adxl345_set_justify(&gs_handle, ADXL345_JUSTIFY_LEFT);
986 if (res != 0)
987 {
988 adxl345_interface_debug_print("adxl345: set justify failed.\n");
989 (void)adxl345_deinit(&gs_handle);
990
991 return 1;
992 }
993
994 /* set full resolution */
996 if (res != 0)
997 {
998 adxl345_interface_debug_print("adxl345: set full resolution failed.\n");
999 (void)adxl345_deinit(&gs_handle);
1000
1001 return 1;
1002 }
1003
1004 /* 2g */
1005 adxl345_interface_debug_print("adxl345: set 2g range.\n");
1006 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_2G);
1007 if (res != 0)
1008 {
1009 adxl345_interface_debug_print("adxl345: set range failed.\n");
1010 (void)adxl345_deinit(&gs_handle);
1011
1012 return 1;
1013 }
1014
1015 /* start measure */
1016 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1017 if (res != 0)
1018 {
1019 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1020 (void)adxl345_deinit(&gs_handle);
1021
1022 return 1;
1023 }
1025 for (i = 0; i < times; i++)
1026 {
1027 uint16_t len;
1028
1029 len = 1;
1030
1031 /* read data */
1032 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1033 {
1034 adxl345_interface_debug_print("adxl345: read failed.\n");
1035 (void)adxl345_deinit(&gs_handle);
1036
1037 return 1;
1038 }
1039 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1040 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1041 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1043 }
1044
1045 /* stop measure */
1046 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1047 if (res != 0)
1048 {
1049 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1050 (void)adxl345_deinit(&gs_handle);
1051
1052 return 1;
1053 }
1055
1056 /* 4g */
1057 adxl345_interface_debug_print("adxl345: set 4g range.\n");
1058 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_4G);
1059 if (res != 0)
1060 {
1061 adxl345_interface_debug_print("adxl345: set range failed.\n");
1062 (void)adxl345_deinit(&gs_handle);
1063
1064 return 1;
1065 }
1066
1067 /* start measure */
1068 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1069 if (res != 0)
1070 {
1071 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1072 (void)adxl345_deinit(&gs_handle);
1073
1074 return 1;
1075 }
1077 for (i = 0; i < times; i++)
1078 {
1079 uint16_t len;
1080
1081 len = 1;
1082
1083 /* read data */
1084 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1085 {
1086 adxl345_interface_debug_print("adxl345: read failed.\n");
1087 (void)adxl345_deinit(&gs_handle);
1088
1089 return 1;
1090 }
1091 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1092 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1093 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1095 }
1096
1097 /* stop measure */
1098 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1099 if (res != 0)
1100 {
1101 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1102 (void)adxl345_deinit(&gs_handle);
1103
1104 return 1;
1105 }
1107
1108 /* 8g */
1109 adxl345_interface_debug_print("adxl345: set 8g range.\n");
1110 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_8G);
1111 if (res != 0)
1112 {
1113 adxl345_interface_debug_print("adxl345: set range failed.\n");
1114 (void)adxl345_deinit(&gs_handle);
1115
1116 return 1;
1117 }
1118
1119 /* start measure */
1120 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1121 if (res != 0)
1122 {
1123 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1124 (void)adxl345_deinit(&gs_handle);
1125
1126 return 1;
1127 }
1129 for (i = 0; i < times; i++)
1130 {
1131 uint16_t len;
1132
1133 len = 1;
1134
1135 /* read data */
1136 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1137 {
1138 adxl345_interface_debug_print("adxl345: read failed.\n");
1139 (void)adxl345_deinit(&gs_handle);
1140
1141 return 1;
1142 }
1143 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1144 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1145 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1147 }
1148
1149 /* stop measure */
1150 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1151 if (res != 0)
1152 {
1153 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1154 (void)adxl345_deinit(&gs_handle);
1155
1156 return 1;
1157 }
1159
1160 /* 16g */
1161 adxl345_interface_debug_print("adxl345: set 16g range.\n");
1162 res = adxl345_set_range(&gs_handle, ADXL345_RANGE_16G);
1163 if (res != 0)
1164 {
1165 adxl345_interface_debug_print("adxl345: set range failed.\n");
1166 (void)adxl345_deinit(&gs_handle);
1167
1168 return 1;
1169 }
1170
1171 /* start measure */
1172 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1173 if (res != 0)
1174 {
1175 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1176 (void)adxl345_deinit(&gs_handle);
1177
1178 return 1;
1179 }
1181 for (i = 0; i < times; i++)
1182 {
1183 uint16_t len;
1184
1185 len = 1;
1186
1187 /* read data */
1188 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1189 {
1190 adxl345_interface_debug_print("adxl345: read failed.\n");
1191 (void)adxl345_deinit(&gs_handle);
1192
1193 return 1;
1194 }
1195 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1196 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1197 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1199 }
1200
1201 /* stop measure */
1202 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1203 if (res != 0)
1204 {
1205 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1206 (void)adxl345_deinit(&gs_handle);
1207
1208 return 1;
1209 }
1211
1212 /* full resolution */
1213 adxl345_interface_debug_print("adxl345: set full resolution.\n");
1215 if (res != 0)
1216 {
1217 adxl345_interface_debug_print("adxl345: set full resolution failed.\n");
1218 (void)adxl345_deinit(&gs_handle);
1219
1220 return 1;
1221 }
1222
1223 /* start measure */
1224 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1225 if (res != 0)
1226 {
1227 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1228 (void)adxl345_deinit(&gs_handle);
1229
1230 return 1;
1231 }
1233 for (i = 0; i < times; i++)
1234 {
1235 uint16_t len;
1236
1237 len = 1;
1238
1239 /* read data */
1240 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1241 {
1242 adxl345_interface_debug_print("adxl345: read failed.\n");
1243 (void)adxl345_deinit(&gs_handle);
1244
1245 return 1;
1246 }
1247 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1248 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1249 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1251 }
1252
1253 /* stop measure */
1254 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1255 if (res != 0)
1256 {
1257 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1258 (void)adxl345_deinit(&gs_handle);
1259
1260 return 1;
1261 }
1263
1264 /* set justify right */
1265 res = adxl345_set_justify(&gs_handle, ADXL345_JUSTIFY_RIGHT);
1266 if (res != 0)
1267 {
1268 adxl345_interface_debug_print("adxl345: set justify failed.\n");
1269 (void)adxl345_deinit(&gs_handle);
1270
1271 return 1;
1272 }
1273
1274 /* set rate 0.1Hz */
1275 adxl345_interface_debug_print("adxl345: set rate 0.1Hz.\n");
1276 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_0P1);
1277 if (res != 0)
1278 {
1279 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1280 (void)adxl345_deinit(&gs_handle);
1281
1282 return 1;
1283 }
1284
1285 /* start measure */
1286 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1287 if (res != 0)
1288 {
1289 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1290 (void)adxl345_deinit(&gs_handle);
1291
1292 return 1;
1293 }
1295 for (i = 0; i < times; i++)
1296 {
1297 uint16_t len;
1298
1299 len = 1;
1300
1301 /* read data */
1302 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1303 {
1304 adxl345_interface_debug_print("adxl345: read failed.\n");
1305 (void)adxl345_deinit(&gs_handle);
1306
1307 return 1;
1308 }
1309 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1310 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1311 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1313 }
1314
1315 /* stop measure */
1316 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1317 if (res != 0)
1318 {
1319 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1320 (void)adxl345_deinit(&gs_handle);
1321
1322 return 1;
1323 }
1325
1326 /* set rate 0.2Hz */
1327 adxl345_interface_debug_print("adxl345: set rate 0.2Hz.\n");
1328 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_0P2);
1329 if (res != 0)
1330 {
1331 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1332 (void)adxl345_deinit(&gs_handle);
1333
1334 return 1;
1335 }
1336
1337 /* start measure */
1338 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1339 if (res != 0)
1340 {
1341 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1342 (void)adxl345_deinit(&gs_handle);
1343
1344 return 1;
1345 }
1347 for (i = 0; i < times; i++)
1348 {
1349 uint16_t len;
1350
1351 len = 1;
1352
1353 /* read data */
1354 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1355 {
1356 adxl345_interface_debug_print("adxl345: read failed.\n");
1357 (void)adxl345_deinit(&gs_handle);
1358
1359 return 1;
1360 }
1361 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1362 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1363 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1365 }
1366
1367 /* stop measure */
1368 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1369 if (res != 0)
1370 {
1371 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1372 (void)adxl345_deinit(&gs_handle);
1373
1374 return 1;
1375 }
1377
1378 /* set rate 0.39Hz */
1379 adxl345_interface_debug_print("adxl345: set rate 0.39Hz.\n");
1380 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_0P39);
1381 if (res != 0)
1382 {
1383 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1384 (void)adxl345_deinit(&gs_handle);
1385
1386 return 1;
1387 }
1388
1389 /* start measure */
1390 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1391 if (res != 0)
1392 {
1393 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1394 (void)adxl345_deinit(&gs_handle);
1395
1396 return 1;
1397 }
1399 for (i = 0; i < times; i++)
1400 {
1401 uint16_t len;
1402
1403 len = 1;
1404
1405 /* read data */
1406 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1407 {
1408 adxl345_interface_debug_print("adxl345: read failed.\n");
1409 (void)adxl345_deinit(&gs_handle);
1410
1411 return 1;
1412 }
1413 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1414 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1415 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1417 }
1418
1419 /* stop measure */
1420 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1421 if (res != 0)
1422 {
1423 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1424 (void)adxl345_deinit(&gs_handle);
1425
1426 return 1;
1427 }
1429
1430 /* set rate 0.78Hz */
1431 adxl345_interface_debug_print("adxl345: set rate 0.78Hz.\n");
1432 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_0P78);
1433 if (res != 0)
1434 {
1435 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1436 (void)adxl345_deinit(&gs_handle);
1437
1438 return 1;
1439 }
1440
1441 /* start measure */
1442 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1443 if (res != 0)
1444 {
1445 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1446 (void)adxl345_deinit(&gs_handle);
1447
1448 return 1;
1449 }
1451 for (i = 0; i < times; i++)
1452 {
1453 uint16_t len;
1454
1455 len = 1;
1456
1457 /* read data */
1458 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1459 {
1460 adxl345_interface_debug_print("adxl345: read failed.\n");
1461 (void)adxl345_deinit(&gs_handle);
1462
1463 return 1;
1464 }
1465 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1466 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1467 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1469 }
1470
1471 /* stop measure */
1472 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1473 if (res != 0)
1474 {
1475 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1476 (void)adxl345_deinit(&gs_handle);
1477
1478 return 1;
1479 }
1481
1482 /* set rate 1.56Hz */
1483 adxl345_interface_debug_print("adxl345: set rate 1.56Hz.\n");
1484 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_1P56);
1485 if (res != 0)
1486 {
1487 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1488 (void)adxl345_deinit(&gs_handle);
1489
1490 return 1;
1491 }
1492
1493 /* start measure */
1494 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1495 if (res != 0)
1496 {
1497 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1498 (void)adxl345_deinit(&gs_handle);
1499
1500 return 1;
1501 }
1503 for (i = 0; i < times; i++)
1504 {
1505 uint16_t len;
1506
1507 len = 1;
1508
1509 /* read data */
1510 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1511 {
1512 adxl345_interface_debug_print("adxl345: read failed.\n");
1513 (void)adxl345_deinit(&gs_handle);
1514
1515 return 1;
1516 }
1517 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1518 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1519 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1521 }
1522
1523 /* stop measure */
1524 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1525 if (res != 0)
1526 {
1527 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1528 (void)adxl345_deinit(&gs_handle);
1529
1530 return 1;
1531 }
1533
1534 /* set rate 3.13Hz */
1535 adxl345_interface_debug_print("adxl345: set rate 3.13Hz.\n");
1536 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_3P13);
1537 if (res != 0)
1538 {
1539 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1540 (void)adxl345_deinit(&gs_handle);
1541
1542 return 1;
1543 }
1544
1545 /* start measure */
1546 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1547 if (res != 0)
1548 {
1549 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1550 (void)adxl345_deinit(&gs_handle);
1551
1552 return 1;
1553 }
1555 for (i = 0; i < times; i++)
1556 {
1557 uint16_t len;
1558
1559 len = 1;
1560
1561 /* read data */
1562 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1563 {
1564 adxl345_interface_debug_print("adxl345: read failed.\n");
1565 (void)adxl345_deinit(&gs_handle);
1566
1567 return 1;
1568 }
1569 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1570 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1571 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1573 }
1574
1575 /* stop measure */
1576 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1577 if (res != 0)
1578 {
1579 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1580 (void)adxl345_deinit(&gs_handle);
1581
1582 return 1;
1583 }
1585
1586 /* set rate 6.25Hz */
1587 adxl345_interface_debug_print("adxl345: set rate 6.25Hz.\n");
1588 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_6P25);
1589 if (res != 0)
1590 {
1591 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1592 (void)adxl345_deinit(&gs_handle);
1593
1594 return 1;
1595 }
1596
1597 /* start measure */
1598 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1599 if (res != 0)
1600 {
1601 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1602 (void)adxl345_deinit(&gs_handle);
1603
1604 return 1;
1605 }
1607 for (i = 0; i < times; i++)
1608 {
1609 uint16_t len;
1610
1611 len = 1;
1612
1613 /* read data */
1614 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1615 {
1616 adxl345_interface_debug_print("adxl345: read failed.\n");
1617 (void)adxl345_deinit(&gs_handle);
1618
1619 return 1;
1620 }
1621 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1622 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1623 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1625 }
1626
1627 /* stop measure */
1628 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1629 if (res != 0)
1630 {
1631 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1632 (void)adxl345_deinit(&gs_handle);
1633
1634 return 1;
1635 }
1637
1638 /* set rate 12.5Hz */
1639 adxl345_interface_debug_print("adxl345: set rate 12.5Hz.\n");
1640 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_12P5);
1641 if (res != 0)
1642 {
1643 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1644 (void)adxl345_deinit(&gs_handle);
1645
1646 return 1;
1647 }
1648
1649 /* start measure */
1650 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1651 if (res != 0)
1652 {
1653 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1654 (void)adxl345_deinit(&gs_handle);
1655
1656 return 1;
1657 }
1659 for (i = 0; i < times; i++)
1660 {
1661 uint16_t len;
1662
1663 len = 1;
1664
1665 /* read data */
1666 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1667 {
1668 adxl345_interface_debug_print("adxl345: read failed.\n");
1669 (void)adxl345_deinit(&gs_handle);
1670
1671 return 1;
1672 }
1673 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1674 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1675 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1677 }
1678
1679 /* stop measure */
1680 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1681 if (res != 0)
1682 {
1683 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1684 (void)adxl345_deinit(&gs_handle);
1685
1686 return 1;
1687 }
1689
1690 /* set rate 25Hz */
1691 adxl345_interface_debug_print("adxl345: set rate 25Hz.\n");
1692 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_25);
1693 if (res != 0)
1694 {
1695 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1696 (void)adxl345_deinit(&gs_handle);
1697
1698 return 1;
1699 }
1700
1701 /* start measure */
1702 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1703 if (res != 0)
1704 {
1705 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1706 (void)adxl345_deinit(&gs_handle);
1707
1708 return 1;
1709 }
1711 for (i = 0; i < times; i++)
1712 {
1713 uint16_t len;
1714
1715 len = 1;
1716
1717 /* read data */
1718 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1719 {
1720 adxl345_interface_debug_print("adxl345: read failed.\n");
1721 (void)adxl345_deinit(&gs_handle);
1722
1723 return 1;
1724 }
1725 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1726 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1727 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1729 }
1730
1731 /* stop measure */
1732 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1733 if (res != 0)
1734 {
1735 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1736 (void)adxl345_deinit(&gs_handle);
1737
1738 return 1;
1739 }
1741
1742 /* set rate 50Hz */
1743 adxl345_interface_debug_print("adxl345: set rate 50Hz.\n");
1744 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_50);
1745 if (res != 0)
1746 {
1747 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1748 (void)adxl345_deinit(&gs_handle);
1749
1750 return 1;
1751 }
1752
1753 /* start measure */
1754 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1755 if (res != 0)
1756 {
1757 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1758 (void)adxl345_deinit(&gs_handle);
1759
1760 return 1;
1761 }
1763 for (i = 0; i < times; i++)
1764 {
1765 uint16_t len;
1766
1767 len = 1;
1768
1769 /* read data */
1770 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1771 {
1772 adxl345_interface_debug_print("adxl345: read failed.\n");
1773 (void)adxl345_deinit(&gs_handle);
1774
1775 return 1;
1776 }
1777 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1778 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1779 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1781 }
1782
1783 /* stop measure */
1784 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1785 if (res != 0)
1786 {
1787 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1788 (void)adxl345_deinit(&gs_handle);
1789
1790 return 1;
1791 }
1793
1794 /* set rate 100Hz */
1795 adxl345_interface_debug_print("adxl345: set rate 100Hz.\n");
1796 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_100);
1797 if (res != 0)
1798 {
1799 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1800 (void)adxl345_deinit(&gs_handle);
1801
1802 return 1;
1803 }
1804
1805 /* start measure */
1806 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1807 if (res != 0)
1808 {
1809 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1810 (void)adxl345_deinit(&gs_handle);
1811
1812 return 1;
1813 }
1815 for (i = 0; i < times; i++)
1816 {
1817 uint16_t len;
1818
1819 len = 1;
1820
1821 /* read data */
1822 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1823 {
1824 adxl345_interface_debug_print("adxl345: read failed.\n");
1825 (void)adxl345_deinit(&gs_handle);
1826
1827 return 1;
1828 }
1829 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1830 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1831 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1833 }
1834
1835 /* stop measure */
1836 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1837 if (res != 0)
1838 {
1839 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1840 (void)adxl345_deinit(&gs_handle);
1841
1842 return 1;
1843 }
1845
1846 /* set rate 200Hz */
1847 adxl345_interface_debug_print("adxl345: set rate 200Hz.\n");
1848 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_200);
1849 if (res != 0)
1850 {
1851 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1852 (void)adxl345_deinit(&gs_handle);
1853
1854 return 1;
1855 }
1856
1857 /* start measure */
1858 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1859 if (res != 0)
1860 {
1861 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1862 (void)adxl345_deinit(&gs_handle);
1863
1864 return 1;
1865 }
1867 for (i = 0; i < times; i++)
1868 {
1869 uint16_t len;
1870
1871 len = 1;
1872
1873 /* read data */
1874 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1875 {
1876 adxl345_interface_debug_print("adxl345: read failed.\n");
1877 (void)adxl345_deinit(&gs_handle);
1878
1879 return 1;
1880 }
1881 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1882 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1883 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1885 }
1886
1887 /* stop measure */
1888 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1889 if (res != 0)
1890 {
1891 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1892 (void)adxl345_deinit(&gs_handle);
1893
1894 return 1;
1895 }
1897
1898 /* set rate 400Hz */
1899 adxl345_interface_debug_print("adxl345: set rate 400Hz.\n");
1900 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_400);
1901 if (res != 0)
1902 {
1903 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1904 (void)adxl345_deinit(&gs_handle);
1905
1906 return 1;
1907 }
1908
1909 /* start measure */
1910 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1911 if (res != 0)
1912 {
1913 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1914 (void)adxl345_deinit(&gs_handle);
1915
1916 return 1;
1917 }
1919 for (i = 0; i < times; i++)
1920 {
1921 uint16_t len;
1922
1923 len = 1;
1924
1925 /* read data */
1926 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1927 {
1928 adxl345_interface_debug_print("adxl345: read failed.\n");
1929 (void)adxl345_deinit(&gs_handle);
1930
1931 return 1;
1932 }
1933 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1934 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1935 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1937 }
1938
1939 /* stop measure */
1940 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1941 if (res != 0)
1942 {
1943 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1944 (void)adxl345_deinit(&gs_handle);
1945
1946 return 1;
1947 }
1949
1950 /* set rate 800Hz */
1951 adxl345_interface_debug_print("adxl345: set rate 800Hz.\n");
1952 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_800);
1953 if (res != 0)
1954 {
1955 adxl345_interface_debug_print("adxl345: set rate failed.\n");
1956 (void)adxl345_deinit(&gs_handle);
1957
1958 return 1;
1959 }
1960
1961 /* start measure */
1962 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
1963 if (res != 0)
1964 {
1965 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1966 (void)adxl345_deinit(&gs_handle);
1967
1968 return 1;
1969 }
1971 for (i = 0; i < times; i++)
1972 {
1973 uint16_t len;
1974
1975 len = 1;
1976
1977 /* read data */
1978 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
1979 {
1980 adxl345_interface_debug_print("adxl345: read failed.\n");
1981 (void)adxl345_deinit(&gs_handle);
1982
1983 return 1;
1984 }
1985 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
1986 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
1987 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
1989 }
1990
1991 /* stop measure */
1992 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
1993 if (res != 0)
1994 {
1995 adxl345_interface_debug_print("adxl345: set measure failed.\n");
1996 (void)adxl345_deinit(&gs_handle);
1997
1998 return 1;
1999 }
2001
2002 /* set rate 1600Hz */
2003 adxl345_interface_debug_print("adxl345: set rate 1600Hz.\n");
2004 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_1600);
2005 if (res != 0)
2006 {
2007 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2008 (void)adxl345_deinit(&gs_handle);
2009
2010 return 1;
2011 }
2012
2013 /* start measure */
2014 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2015 if (res != 0)
2016 {
2017 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2018 (void)adxl345_deinit(&gs_handle);
2019
2020 return 1;
2021 }
2023 for (i = 0; i < times; i++)
2024 {
2025 uint16_t len;
2026
2027 len = 1;
2028
2029 /* read data */
2030 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2031 {
2032 adxl345_interface_debug_print("adxl345: read failed.\n");
2033 (void)adxl345_deinit(&gs_handle);
2034
2035 return 1;
2036 }
2037 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2038 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2039 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2041 }
2042
2043 /* stop measure */
2044 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2045 if (res != 0)
2046 {
2047 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2048 (void)adxl345_deinit(&gs_handle);
2049
2050 return 1;
2051 }
2053
2054 /* set rate 3200Hz */
2055 adxl345_interface_debug_print("adxl345: set rate 3200Hz.\n");
2056 res = adxl345_set_rate(&gs_handle, ADXL345_RATE_3200);
2057 if (res != 0)
2058 {
2059 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2060 (void)adxl345_deinit(&gs_handle);
2061
2062 return 1;
2063 }
2064
2065 /* start measure */
2066 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2067 if (res != 0)
2068 {
2069 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2070 (void)adxl345_deinit(&gs_handle);
2071
2072 return 1;
2073 }
2075 for (i = 0; i < times; i++)
2076 {
2077 uint16_t len;
2078
2079 len = 1;
2080
2081 /* read data */
2082 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2083 {
2084 adxl345_interface_debug_print("adxl345: read failed.\n");
2085 (void)adxl345_deinit(&gs_handle);
2086
2087 return 1;
2088 }
2089 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2090 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2091 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2093 }
2094
2095 /* stop measure */
2096 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2097 if (res != 0)
2098 {
2099 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2100 (void)adxl345_deinit(&gs_handle);
2101
2102 return 1;
2103 }
2105
2106 /* set rate low power 12.5Hz */
2107 adxl345_interface_debug_print("adxl345: set rate low power 12.5Hz.\n");
2109 if (res != 0)
2110 {
2111 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2112 (void)adxl345_deinit(&gs_handle);
2113
2114 return 1;
2115 }
2116
2117 /* start measure */
2118 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2119 if (res != 0)
2120 {
2121 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2122 (void)adxl345_deinit(&gs_handle);
2123
2124 return 1;
2125 }
2127 for (i = 0; i < times; i++)
2128 {
2129 uint16_t len;
2130
2131 len = 1;
2132
2133 /* read data */
2134 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2135 {
2136 adxl345_interface_debug_print("adxl345: read failed.\n");
2137 (void)adxl345_deinit(&gs_handle);
2138
2139 return 1;
2140 }
2141 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2142 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2143 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2145 }
2146
2147 /* stop measure */
2148 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2149 if (res != 0)
2150 {
2151 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2152 (void)adxl345_deinit(&gs_handle);
2153
2154 return 1;
2155 }
2157
2158 /* set rate low power 25Hz */
2159 adxl345_interface_debug_print("adxl345: set rate low power 25Hz.\n");
2161 if (res != 0)
2162 {
2163 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2164 (void)adxl345_deinit(&gs_handle);
2165
2166 return 1;
2167 }
2168
2169 /* start measure */
2170 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2171 if (res != 0)
2172 {
2173 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2174 (void)adxl345_deinit(&gs_handle);
2175
2176 return 1;
2177 }
2179 for (i = 0; i < times; i++)
2180 {
2181 uint16_t len;
2182
2183 len = 1;
2184
2185 /* read data */
2186 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2187 {
2188 adxl345_interface_debug_print("adxl345: read failed.\n");
2189 (void)adxl345_deinit(&gs_handle);
2190
2191 return 1;
2192 }
2193 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2194 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2195 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2197 }
2198
2199 /* stop measure */
2200 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2201 if (res != 0)
2202 {
2203 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2204 (void)adxl345_deinit(&gs_handle);
2205
2206 return 1;
2207 }
2209
2210 /* set rate low power 50Hz */
2211 adxl345_interface_debug_print("adxl345: set rate low power 50Hz.\n");
2213 if (res != 0)
2214 {
2215 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2216 (void)adxl345_deinit(&gs_handle);
2217
2218 return 1;
2219 }
2220
2221 /* start measure */
2222 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2223 if (res != 0)
2224 {
2225 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2226 (void)adxl345_deinit(&gs_handle);
2227
2228 return 1;
2229 }
2231 for (i = 0; i < times; i++)
2232 {
2233 uint16_t len;
2234
2235 len = 1;
2236 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2237 {
2238 adxl345_interface_debug_print("adxl345: read failed.\n");
2239 (void)adxl345_deinit(&gs_handle);
2240
2241 return 1;
2242 }
2243 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2244 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2245 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2247 }
2248
2249 /* stop measure */
2250 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2251 if (res != 0)
2252 {
2253 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2254 (void)adxl345_deinit(&gs_handle);
2255
2256 return 1;
2257 }
2259
2260 /* set rate low power 100Hz */
2261 adxl345_interface_debug_print("adxl345: set rate low power 100Hz.\n");
2263 if (res != 0)
2264 {
2265 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2266 (void)adxl345_deinit(&gs_handle);
2267
2268 return 1;
2269 }
2270
2271 /* start measure */
2272 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2273 if (res != 0)
2274 {
2275 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2276 (void)adxl345_deinit(&gs_handle);
2277
2278 return 1;
2279 }
2281 for (i = 0; i < times; i++)
2282 {
2283 uint16_t len;
2284
2285 len = 1;
2286
2287 /* read data */
2288 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2289 {
2290 adxl345_interface_debug_print("adxl345: read failed.\n");
2291 (void)adxl345_deinit(&gs_handle);
2292
2293 return 1;
2294 }
2295 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2296 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2297 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2299 }
2300
2301 /* stop measure */
2302 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2303 if (res != 0)
2304 {
2305 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2306 (void)adxl345_deinit(&gs_handle);
2307
2308 return 1;
2309 }
2311
2312 /* set rate low power 200Hz */
2313 adxl345_interface_debug_print("adxl345: set rate low power 200Hz.\n");
2315 if (res != 0)
2316 {
2317 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2318 (void)adxl345_deinit(&gs_handle);
2319
2320 return 1;
2321 }
2322
2323 /* start measure */
2324 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2325 if (res != 0)
2326 {
2327 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2328 (void)adxl345_deinit(&gs_handle);
2329
2330 return 1;
2331 }
2333 for (i = 0; i < times; i++)
2334 {
2335 uint16_t len;
2336
2337 len = 1;
2338
2339 /* read data */
2340 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2341 {
2342 adxl345_interface_debug_print("adxl345: read failed.\n");
2343 (void)adxl345_deinit(&gs_handle);
2344
2345 return 1;
2346 }
2347 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2348 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2349 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2351 }
2352
2353 /* stop measure */
2354 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2355 if (res != 0)
2356 {
2357 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2358 (void)adxl345_deinit(&gs_handle);
2359
2360 return 1;
2361 }
2363
2364 /* set rate low power 400Hz */
2365 adxl345_interface_debug_print("adxl345: set rate low power 400Hz.\n");
2367 if (res != 0)
2368 {
2369 adxl345_interface_debug_print("adxl345: set rate failed.\n");
2370 (void)adxl345_deinit(&gs_handle);
2371
2372 return 1;
2373 }
2374
2375 /* start measure */
2376 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_TRUE);
2377 if (res != 0)
2378 {
2379 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2380 (void)adxl345_deinit(&gs_handle);
2381
2382 return 1;
2383 }
2385 for (i = 0; i < times; i++)
2386 {
2387 uint16_t len;
2388
2389 len = 1;
2390
2391 /* read data */
2392 if (adxl345_read(&gs_handle, (int16_t (*)[3])gs_raw_test, (float (*)[3])gs_test, (uint16_t *)&len) != 0)
2393 {
2394 adxl345_interface_debug_print("adxl345: read failed.\n");
2395 (void)adxl345_deinit(&gs_handle);
2396
2397 return 1;
2398 }
2399 adxl345_interface_debug_print("x is %0.2f g.\n", gs_test[0][0]);
2400 adxl345_interface_debug_print("y is %0.2f g.\n", gs_test[0][1]);
2401 adxl345_interface_debug_print("z is %0.2f g.\n", gs_test[0][2]);
2403 }
2404
2405 /* stop measure */
2406 res = adxl345_set_measure(&gs_handle, ADXL345_BOOL_FALSE);
2407 if (res != 0)
2408 {
2409 adxl345_interface_debug_print("adxl345: set measure failed.\n");
2410 (void)adxl345_deinit(&gs_handle);
2411
2412 return 1;
2413 }
2415
2416 /* finish read test */
2417 adxl345_interface_debug_print("adxl345: finish read test.\n");
2418 (void)adxl345_deinit(&gs_handle);
2419
2420 return 0;
2421}
driver adxl345 read test header file
adxl345_interface_t
adxl345 interface enumeration definition
uint8_t adxl345_inaction_time_convert_to_register(adxl345_handle_t *handle, uint8_t s, uint8_t *reg)
convert the inaction time to the register raw data
uint8_t adxl345_duration_convert_to_register(adxl345_handle_t *handle, uint32_t us, uint8_t *reg)
convert the duration to the register raw data
struct adxl345_info_s adxl345_info_t
adxl345 information structure definition
uint8_t adxl345_inaction_threshold_convert_to_register(adxl345_handle_t *handle, float g, uint8_t *reg)
convert the inaction threshold to the register raw data
uint8_t adxl345_set_full_resolution(adxl345_handle_t *handle, adxl345_bool_t enable)
enable or disable the full resolution
uint8_t adxl345_set_inaction_time(adxl345_handle_t *handle, uint8_t t)
set the inaction time
uint8_t adxl345_deinit(adxl345_handle_t *handle)
close the chip
uint8_t adxl345_set_inaction_coupled(adxl345_handle_t *handle, adxl345_coupled_t coupled)
set the inaction coupled
uint8_t adxl345_set_spi_wire(adxl345_handle_t *handle, adxl345_spi_wire_t wire)
set the chip spi wire
uint8_t adxl345_set_measure(adxl345_handle_t *handle, adxl345_bool_t enable)
enable or disable the measure
uint8_t adxl345_set_trigger_pin(adxl345_handle_t *handle, adxl345_interrupt_pin_t pin)
set the trigger pin
uint8_t adxl345_set_link_activity_inactivity(adxl345_handle_t *handle, adxl345_bool_t enable)
enable or disable the activity and inactivity linking
uint8_t adxl345_set_action_threshold(adxl345_handle_t *handle, uint8_t threshold)
set the action threshold
uint8_t adxl345_set_free_fall_threshold(adxl345_handle_t *handle, uint8_t threshold)
set the free fall threshold
uint8_t adxl345_set_sleep(adxl345_handle_t *handle, adxl345_bool_t enable)
enable or disable the sleep mode
uint8_t adxl345_read(adxl345_handle_t *handle, int16_t(*raw)[3], float(*g)[3], uint16_t *len)
read the data
uint8_t adxl345_set_offset(adxl345_handle_t *handle, int8_t x, int8_t y, int8_t z)
set the axis offset
uint8_t adxl345_set_latent(adxl345_handle_t *handle, uint8_t t)
set the latent
uint8_t adxl345_set_rate(adxl345_handle_t *handle, adxl345_rate_t rate)
set the sampling rate
uint8_t adxl345_set_inaction_threshold(adxl345_handle_t *handle, uint8_t threshold)
set the inaction threshold
uint8_t adxl345_set_addr_pin(adxl345_handle_t *handle, adxl345_address_t addr_pin)
set the iic address pin
uint8_t adxl345_free_fall_time_convert_to_register(adxl345_handle_t *handle, uint16_t ms, uint8_t *reg)
convert the free fall time to the register raw data
uint8_t adxl345_set_action_inaction(adxl345_handle_t *handle, adxl345_action_inaction_t type, adxl345_bool_t enable)
enable or disable the action or inaction
uint8_t adxl345_free_fall_threshold_convert_to_register(adxl345_handle_t *handle, float g, uint8_t *reg)
convert the free fall threshold to the register raw data
uint8_t adxl345_window_convert_to_register(adxl345_handle_t *handle, float ms, uint8_t *reg)
convert the window time to the register raw data
uint8_t adxl345_set_duration(adxl345_handle_t *handle, uint8_t t)
set the duration
uint8_t adxl345_tap_threshold_convert_to_register(adxl345_handle_t *handle, float g, uint8_t *reg)
convert the tap threshold to the register raw data
uint8_t adxl345_set_tap_suppress(adxl345_handle_t *handle, adxl345_bool_t enable)
enable or disable the tap suppress
uint8_t adxl345_set_auto_sleep(adxl345_handle_t *handle, adxl345_bool_t enable)
enable or disable the auto sleep
uint8_t adxl345_set_tap_axis(adxl345_handle_t *handle, adxl345_tap_axis_t axis, adxl345_bool_t enable)
enable or disable the tap axis
uint8_t adxl345_set_free_fall_time(adxl345_handle_t *handle, uint8_t t)
set the free fall time
uint8_t adxl345_set_window(adxl345_handle_t *handle, uint8_t t)
set the window
uint8_t adxl345_action_threshold_convert_to_register(adxl345_handle_t *handle, float g, uint8_t *reg)
convert the action threshold to the register raw data
uint8_t adxl345_set_sleep_frequency(adxl345_handle_t *handle, adxl345_sleep_frequency_t sleep_frequency)
set the sleep frequency
adxl345_address_t
adxl345 address enumeration definition
uint8_t adxl345_latent_convert_to_register(adxl345_handle_t *handle, float ms, uint8_t *reg)
convert the latent to the register raw data
uint8_t adxl345_offset_convert_to_register(adxl345_handle_t *handle, float g, int8_t *reg)
convert the offset to the register raw data
uint8_t adxl345_init(adxl345_handle_t *handle)
initialize the chip
struct adxl345_handle_s adxl345_handle_t
adxl345 handle structure definition
uint8_t adxl345_set_action_coupled(adxl345_handle_t *handle, adxl345_coupled_t coupled)
set the action coupled
uint8_t adxl345_set_justify(adxl345_handle_t *handle, adxl345_justify_t enable)
enable or disable the justify
uint8_t adxl345_set_interface(adxl345_handle_t *handle, adxl345_interface_t interface)
set the chip interface
uint8_t adxl345_set_mode(adxl345_handle_t *handle, adxl345_mode_t mode)
set the chip mode
uint8_t adxl345_info(adxl345_info_t *info)
get chip's information
uint8_t adxl345_set_tap_threshold(adxl345_handle_t *handle, uint8_t threshold)
set the tap threshold
uint8_t adxl345_set_range(adxl345_handle_t *handle, adxl345_range_t range)
set the chip range
@ ADXL345_SPI_WIRE_4
@ ADXL345_JUSTIFY_LEFT
@ ADXL345_JUSTIFY_RIGHT
@ ADXL345_ACTION_Z
@ ADXL345_INACTION_Z
@ ADXL345_INACTION_X
@ ADXL345_INACTION_Y
@ ADXL345_ACTION_X
@ ADXL345_ACTION_Y
@ ADXL345_RANGE_8G
@ ADXL345_RANGE_2G
@ ADXL345_RANGE_16G
@ ADXL345_RANGE_4G
@ ADXL345_RATE_800
@ ADXL345_RATE_6P25
@ ADXL345_RATE_1P56
@ ADXL345_RATE_1600
@ ADXL345_LOW_POWER_RATE_200
@ ADXL345_RATE_3200
@ ADXL345_RATE_50
@ ADXL345_RATE_0P2
@ ADXL345_RATE_100
@ ADXL345_RATE_3P13
@ ADXL345_RATE_200
@ ADXL345_RATE_400
@ ADXL345_RATE_0P1
@ ADXL345_RATE_0P78
@ ADXL345_LOW_POWER_RATE_12P5
@ ADXL345_RATE_0P39
@ ADXL345_LOW_POWER_RATE_100
@ ADXL345_RATE_12P5
@ ADXL345_LOW_POWER_RATE_50
@ ADXL345_LOW_POWER_RATE_400
@ ADXL345_RATE_25
@ ADXL345_LOW_POWER_RATE_25
@ ADXL345_TAP_AXIS_Z
@ ADXL345_TAP_AXIS_Y
@ ADXL345_TAP_AXIS_X
@ ADXL345_COUPLED_DC
@ ADXL345_COUPLED_AC
@ ADXL345_BOOL_FALSE
@ ADXL345_BOOL_TRUE
@ ADXL345_SLEEP_FREQUENCY_1HZ
@ ADXL345_MODE_BYPASS
uint8_t adxl345_set_watermark(adxl345_handle_t *handle, uint8_t level)
set the fifo watermark
uint8_t adxl345_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t adxl345_interface_spi_deinit(void)
interface spi bus deinit
uint8_t adxl345_interface_iic_deinit(void)
interface iic bus deinit
uint8_t adxl345_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
void adxl345_interface_receive_callback(uint8_t type)
interface receive callback
uint8_t adxl345_interface_iic_init(void)
interface iic bus init
uint8_t adxl345_interface_spi_init(void)
interface spi bus init
uint8_t adxl345_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void adxl345_interface_delay_ms(uint32_t ms)
interface delay ms
void adxl345_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t adxl345_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t adxl345_set_interrupt(adxl345_handle_t *handle, adxl345_interrupt_t type, adxl345_bool_t enable)
enable or disable the interrupt
uint8_t adxl345_set_interrupt_map(adxl345_handle_t *handle, adxl345_interrupt_t type, adxl345_interrupt_pin_t pin)
set the interrupt map
uint8_t adxl345_set_interrupt_active_level(adxl345_handle_t *handle, adxl345_interrupt_active_level_t active_level)
set the interrupt active level
@ ADXL345_INTERRUPT_ACTIVE_LEVEL_LOW
@ ADXL345_INTERRUPT_PIN2
@ ADXL345_INTERRUPT_PIN1
@ ADXL345_INTERRUPT_DATA_READY
@ ADXL345_INTERRUPT_DOUBLE_TAP
@ ADXL345_INTERRUPT_ACTIVITY
@ ADXL345_INTERRUPT_SINGLE_TAP
@ ADXL345_INTERRUPT_INACTIVITY
@ ADXL345_INTERRUPT_WATERMARK
@ ADXL345_INTERRUPT_OVERRUN
@ ADXL345_INTERRUPT_FREE_FALL
uint8_t adxl345_read_test(adxl345_interface_t interface, adxl345_address_t addr_pin, uint32_t times)
read test
uint32_t driver_version
char manufacturer_name[32]