LibDriver ADXL345  2.0.0
ADXL345 full-featured driver
driver_adxl345_read_test.c
Go to the documentation of this file.
1 
39 
40 static adxl345_handle_t gs_handle;
41 static int16_t gs_raw_test[20][3];
42 static float gs_test[20][3];
54 uint8_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 */
144  res = adxl345_set_auto_sleep(&gs_handle, ADXL345_BOOL_FALSE);
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 */
334  res = adxl345_set_tap_suppress(&gs_handle, ADXL345_BOOL_FALSE);
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");
694  res = adxl345_set_justify(&gs_handle, ADXL345_JUSTIFY_RIGHT);
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");
2108  res = adxl345_set_rate(&gs_handle, ADXL345_LOW_POWER_RATE_12P5);
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");
2160  res = adxl345_set_rate(&gs_handle, ADXL345_LOW_POWER_RATE_25);
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");
2212  res = adxl345_set_rate(&gs_handle, ADXL345_LOW_POWER_RATE_50);
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");
2262  res = adxl345_set_rate(&gs_handle, ADXL345_LOW_POWER_RATE_100);
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");
2314  res = adxl345_set_rate(&gs_handle, ADXL345_LOW_POWER_RATE_200);
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");
2366  res = adxl345_set_rate(&gs_handle, ADXL345_LOW_POWER_RATE_400);
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
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
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
adxl345 handle structure definition
adxl345 information structure definition
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]