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