LibDriver MPU6500
Loading...
Searching...
No Matches
driver_mpu6500_register_test.c
Go to the documentation of this file.
1
36
38#include <stdlib.h>
39
40static mpu6500_handle_t gs_handle;
41
52{
53 uint8_t res;
54 uint8_t reg;
55 uint8_t i;
56 uint8_t div_in;
57 uint8_t div_check;
58 uint8_t data[8];
59 uint8_t data_check[8];
60 uint16_t cnt;
61 uint8_t status;
62 uint8_t test;
63 uint8_t test_check;
64 int16_t offset;
65 int16_t offset_check;
66 float test_f;
67 float test_check_f;
68 mpu6500_info_t info;
69 mpu6500_address_t addr_pin;
70 mpu6500_interface_t interface_check;
71 mpu6500_bool_t enable;
72 mpu6500_clock_source_t clock_source;
81 mpu6500_iic4_transaction_mode_t transaction_mode;
85 mpu6500_fifo_mode fifo_mode;
86 mpu6500_accelerometer_low_pass_filter_t accelerometer_filter;
88
89 /* link interface function */
102
103 /* get information */
104 res = mpu6500_info(&info);
105 if (res != 0)
106 {
107 mpu6500_interface_debug_print("mpu6500: get info failed.\n");
108
109 return 1;
110 }
111 else
112 {
113 /* print chip info */
114 mpu6500_interface_debug_print("mpu6500: chip is %s.\n", info.chip_name);
115 mpu6500_interface_debug_print("mpu6500: manufacturer is %s.\n", info.manufacturer_name);
116 mpu6500_interface_debug_print("mpu6500: interface is %s.\n", info.interface);
117 mpu6500_interface_debug_print("mpu6500: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
118 mpu6500_interface_debug_print("mpu6500: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
119 mpu6500_interface_debug_print("mpu6500: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
120 mpu6500_interface_debug_print("mpu6500: max current is %0.2fmA.\n", info.max_current_ma);
121 mpu6500_interface_debug_print("mpu6500: max temperature is %0.1fC.\n", info.temperature_max);
122 mpu6500_interface_debug_print("mpu6500: min temperature is %0.1fC.\n", info.temperature_min);
123 }
124
125 /* start register test */
126 mpu6500_interface_debug_print("mpu6500: start register test.\n");
127
128 /* mpu6500_set_interface/mpu6500_get_interface test */
129 mpu6500_interface_debug_print("mpu6500: mpu6500_set_interface/mpu6500_get_interface test.\n");
130
131 /* iic */
133 if (res != 0)
134 {
135 mpu6500_interface_debug_print("mpu6500: set interface failed.\n");
136
137 return 1;
138 }
139 mpu6500_interface_debug_print("mpu6500: set interface iic.\n");
140 res = mpu6500_get_interface(&gs_handle, &interface_check);
141 if (res != 0)
142 {
143 mpu6500_interface_debug_print("mpu6500: get interface failed.\n");
144
145 return 1;
146 }
147 mpu6500_interface_debug_print("mpu6500: check interface %s.\n", interface_check == MPU6500_INTERFACE_IIC ? "ok" : "error");
148
149 /* spi */
151 if (res != 0)
152 {
153 mpu6500_interface_debug_print("mpu6500: set interface failed.\n");
154
155 return 1;
156 }
157 mpu6500_interface_debug_print("mpu6500: set interface spi.\n");
158 res = mpu6500_get_interface(&gs_handle, &interface_check);
159 if (res != 0)
160 {
161 mpu6500_interface_debug_print("mpu6500: get interface failed.\n");
162
163 return 1;
164 }
165 mpu6500_interface_debug_print("mpu6500: check interface %s.\n", interface_check == MPU6500_INTERFACE_SPI ? "ok" : "error");
166
167 /* mpu6500_set_addr_pin/mpu6500_get_addr_pin test */
168 mpu6500_interface_debug_print("mpu6500: mpu6500_set_addr_pin/mpu6500_get_addr_pin test.\n");
169
170 /* set low */
172 if (res != 0)
173 {
174 mpu6500_interface_debug_print("mpu6500: set addr pin failed.\n");
175
176 return 1;
177 }
178 mpu6500_interface_debug_print("mpu6500: set addr pin low.\n");
179 res = mpu6500_get_addr_pin(&gs_handle, &addr_pin);
180 if (res != 0)
181 {
182 mpu6500_interface_debug_print("mpu6500: get addr pin failed.\n");
183
184 return 1;
185 }
186 mpu6500_interface_debug_print("mpu6500: check addr pin %s.\n", addr_pin == MPU6500_ADDRESS_AD0_LOW ? "ok" : "error");
187
188 /* set high */
190 if (res != 0)
191 {
192 mpu6500_interface_debug_print("mpu6500: set addr pin failed.\n");
193
194 return 1;
195 }
196 mpu6500_interface_debug_print("mpu6500: set addr pin high.\n");
197 res = mpu6500_get_addr_pin(&gs_handle, &addr_pin);
198 if (res != 0)
199 {
200 mpu6500_interface_debug_print("mpu6500: get addr pin failed.\n");
201
202 return 1;
203 }
204 mpu6500_interface_debug_print("mpu6500: check addr pin %s.\n", addr_pin == MPU6500_ADDRESS_AD0_HIGH ? "ok" : "error");
205
206 /* set the interface */
207 res = mpu6500_set_interface(&gs_handle, interface);
208 if (res != 0)
209 {
210 mpu6500_interface_debug_print("mpu6500: set interface failed.\n");
211
212 return 1;
213 }
214
215 /* set the addr pin */
216 res = mpu6500_set_addr_pin(&gs_handle, addr);
217 if (res != 0)
218 {
219 mpu6500_interface_debug_print("mpu6500: set addr pin failed.\n");
220
221 return 1;
222 }
223
224 /* init */
225 res = mpu6500_init(&gs_handle);
226 if (res != 0)
227 {
228 mpu6500_interface_debug_print("mpu6500: init failed.\n");
229
230 return 1;
231 }
232
233 /* delay 100 ms */
235
236 /* disable sleep */
237 res = mpu6500_set_sleep(&gs_handle, MPU6500_BOOL_FALSE);
238 if (res != 0)
239 {
240 mpu6500_interface_debug_print("mpu6500: set sleep failed.\n");
241 (void)mpu6500_deinit(&gs_handle);
242
243 return 1;
244 }
245
246 /* if spi interface, disable iic interface */
247 if (interface == MPU6500_INTERFACE_SPI)
248 {
249 /* disable iic */
251 if (res != 0)
252 {
253 mpu6500_interface_debug_print("mpu6500: set disable iic slave failed.\n");
254 (void)mpu6500_deinit(&gs_handle);
255
256 return 1;
257 }
258 }
259
260 /* set fifo 1024kb */
261 res = mpu6500_set_fifo_1024kb(&gs_handle);
262 if (res != 0)
263 {
264 mpu6500_interface_debug_print("mpu6500: set fifo 1024kb failed.\n");
265 (void)mpu6500_deinit(&gs_handle);
266
267 return 1;
268 }
269
270 /* mpu6500_set_fifo/mpu6500_get_fifo test */
271 mpu6500_interface_debug_print("mpu6500: mpu6500_set_fifo/mpu6500_get_fifo test.\n");
272
273 /* enable fifo */
274 res = mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_TRUE);
275 if (res != 0)
276 {
277 mpu6500_interface_debug_print("mpu6500: set fifo failed.\n");
278 (void)mpu6500_deinit(&gs_handle);
279
280 return 1;
281 }
282 mpu6500_interface_debug_print("mpu6500: enable fifo.\n");
283
284 res = mpu6500_get_fifo(&gs_handle, &enable);
285 if (res != 0)
286 {
287 mpu6500_interface_debug_print("mpu6500: get fifo failed.\n");
288 (void)mpu6500_deinit(&gs_handle);
289
290 return 1;
291 }
292 mpu6500_interface_debug_print("mpu6500: check fifo %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
293
294 /* disable fifo */
295 res = mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_FALSE);
296 if (res != 0)
297 {
298 mpu6500_interface_debug_print("mpu6500: set fifo failed.\n");
299 (void)mpu6500_deinit(&gs_handle);
300
301 return 1;
302 }
303 mpu6500_interface_debug_print("mpu6500: disable fifo.\n");
304 res = mpu6500_get_fifo(&gs_handle, &enable);
305 if (res != 0)
306 {
307 mpu6500_interface_debug_print("mpu6500: get fifo failed.\n");
308 (void)mpu6500_deinit(&gs_handle);
309
310 return 1;
311 }
312 mpu6500_interface_debug_print("mpu6500: check fifo %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
313
314 /* mpu6500_set_iic_master/mpu6500_get_iic_master test */
315 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_master/mpu6500_get_iic_master test.\n");
316
317 /* enable iic master */
318 res = mpu6500_set_iic_master(&gs_handle, MPU6500_BOOL_TRUE);
319 if (res != 0)
320 {
321 mpu6500_interface_debug_print("mpu6500: set iic master failed.\n");
322 (void)mpu6500_deinit(&gs_handle);
323
324 return 1;
325 }
326 mpu6500_interface_debug_print("mpu6500: enable iic master.\n");
327 res = mpu6500_get_iic_master(&gs_handle, &enable);
328 if (res != 0)
329 {
330 mpu6500_interface_debug_print("mpu6500: get iic master failed.\n");
331 (void)mpu6500_deinit(&gs_handle);
332
333 return 1;
334 }
335 mpu6500_interface_debug_print("mpu6500: check iic master %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
336
337 /* disable iic master */
339 if (res != 0)
340 {
341 mpu6500_interface_debug_print("mpu6500: set iic master failed.\n");
342 (void)mpu6500_deinit(&gs_handle);
343
344 return 1;
345 }
346 mpu6500_interface_debug_print("mpu6500: disable iic master.\n");
347 res = mpu6500_get_iic_master(&gs_handle, &enable);
348 if (res != 0)
349 {
350 mpu6500_interface_debug_print("mpu6500: get iic master failed.\n");
351 (void)mpu6500_deinit(&gs_handle);
352
353 return 1;
354 }
355 mpu6500_interface_debug_print("mpu6500: check iic master %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
356
357 /* mpu6500_fifo_reset/mpu6500_get_fifo_reset test */
358 mpu6500_interface_debug_print("mpu6500: mpu6500_fifo_reset/mpu6500_get_fifo_reset test.\n");
359
360 /* fifo reset */
361 res = mpu6500_fifo_reset(&gs_handle);
362 if (res != 0)
363 {
364 mpu6500_interface_debug_print("mpu6500: fifo reset failed.\n");
365 (void)mpu6500_deinit(&gs_handle);
366
367 return 1;
368 }
369 mpu6500_interface_debug_print("mpu6500: fifo reset.\n");
370 res = mpu6500_get_fifo_reset(&gs_handle, &enable);
371 if (res != 0)
372 {
373 mpu6500_interface_debug_print("mpu6500: get fifo reset failed.\n");
374 (void)mpu6500_deinit(&gs_handle);
375
376 return 1;
377 }
378 mpu6500_interface_debug_print("mpu6500: check fifo reset %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
379
380 /* mpu6500_iic_master_reset/mpu6500_get_iic_master_reset test */
381 mpu6500_interface_debug_print("mpu6500: mpu6500_iic_master_reset/mpu6500_get_iic_master_reset test.\n");
382
383 /* reset the iic master */
384 res = mpu6500_iic_master_reset(&gs_handle);
385 if (res != 0)
386 {
387 mpu6500_interface_debug_print("mpu6500: iic master failed.\n");
388 (void)mpu6500_deinit(&gs_handle);
389
390 return 1;
391 }
392 mpu6500_interface_debug_print("mpu6500: iic master reset.\n");
393 res = mpu6500_get_iic_master_reset(&gs_handle, &enable);
394 if (res != 0)
395 {
396 mpu6500_interface_debug_print("mpu6500: get iic master failed.\n");
397 (void)mpu6500_deinit(&gs_handle);
398
399 return 1;
400 }
401 mpu6500_interface_debug_print("mpu6500: check iic master %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
402
403 /* mpu6500_sensor_reset/mpu6500_get_sensor_reset test */
404 mpu6500_interface_debug_print("mpu6500: mpu6500_sensor_reset/mpu6500_get_sensor_reset test.\n");
405
406 /* sensor reset */
407 res = mpu6500_sensor_reset(&gs_handle);
408 if (res != 0)
409 {
410 mpu6500_interface_debug_print("mpu6500: sensor reset failed.\n");
411 (void)mpu6500_deinit(&gs_handle);
412
413 return 1;
414 }
415 mpu6500_interface_debug_print("mpu6500: sensor reset.\n");
416 res = mpu6500_get_sensor_reset(&gs_handle, &enable);
417 if (res != 0)
418 {
419 mpu6500_interface_debug_print("mpu6500: get sensor reset failed.\n");
420 (void)mpu6500_deinit(&gs_handle);
421
422 return 1;
423 }
424 mpu6500_interface_debug_print("mpu6500: check sensor reset %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
425
426 /* mpu6500_device_reset/mpu6500_get_device_reset test */
427 mpu6500_interface_debug_print("mpu6500: mpu6500_device_reset/mpu6500_get_device_reset test.\n");
428
429 /* device reset */
430 res = mpu6500_device_reset(&gs_handle);
431 if (res != 0)
432 {
433 mpu6500_interface_debug_print("mpu6500: device reset failed.\n");
434 (void)mpu6500_deinit(&gs_handle);
435
436 return 1;
437 }
438 mpu6500_interface_debug_print("mpu6500: device reset.\n");
439 res = mpu6500_get_device_reset(&gs_handle, &enable);
440 if (res != 0)
441 {
442 mpu6500_interface_debug_print("mpu6500: get device reset failed.\n");
443 (void)mpu6500_deinit(&gs_handle);
444
445 return 1;
446 }
447 mpu6500_interface_debug_print("mpu6500: check device reset %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
448
449 /* delay 100 ms */
451
452 /* disable sleep */
453 res = mpu6500_set_sleep(&gs_handle, MPU6500_BOOL_FALSE);
454 if (res != 0)
455 {
456 mpu6500_interface_debug_print("mpu6500: set sleep failed.\n");
457 (void)mpu6500_deinit(&gs_handle);
458
459 return 1;
460 }
461
462 /* if spi interface, disable iic interface */
463 if (interface == MPU6500_INTERFACE_SPI)
464 {
465 /* disable iic */
467 if (res != 0)
468 {
469 mpu6500_interface_debug_print("mpu6500: set disable iic slave failed.\n");
470 (void)mpu6500_deinit(&gs_handle);
471
472 return 1;
473 }
474 }
475
476 /* mpu6500_set_clock_source/mpu6500_get_clock_source test */
477 mpu6500_interface_debug_print("mpu6500: mpu6500_set_clock_source/mpu6500_get_clock_source test.\n");
478
479 /* stop the clock */
481 if (res != 0)
482 {
483 mpu6500_interface_debug_print("mpu6500: set clock source failed.\n");
484 (void)mpu6500_deinit(&gs_handle);
485
486 return 1;
487 }
488 mpu6500_interface_debug_print("mpu6500: stop the clock.\n");
489 res = mpu6500_get_clock_source(&gs_handle, &clock_source);
490 if (res != 0)
491 {
492 mpu6500_interface_debug_print("mpu6500: get clock source failed.\n");
493 (void)mpu6500_deinit(&gs_handle);
494
495 return 1;
496 }
497 mpu6500_interface_debug_print("mpu6500: check clock source %s.\n", clock_source == MPU6500_CLOCK_SOURCE_STOP_CLOCK ? "ok" : "error");
498
499 /* internal 20.0 MHz */
501 if (res != 0)
502 {
503 mpu6500_interface_debug_print("mpu6500: set clock source failed.\n");
504 (void)mpu6500_deinit(&gs_handle);
505
506 return 1;
507 }
508 mpu6500_interface_debug_print("mpu6500: set the clock source extern 20.0 MHz.\n");
509 res = mpu6500_get_clock_source(&gs_handle, &clock_source);
510 if (res != 0)
511 {
512 mpu6500_interface_debug_print("mpu6500: get clock source failed.\n");
513 (void)mpu6500_deinit(&gs_handle);
514
515 return 1;
516 }
517 mpu6500_interface_debug_print("mpu6500: check clock source %s.\n", clock_source == MPU6500_CLOCK_SOURCE_INTERNAL_20MHZ ? "ok" : "error");
518
519 /* pll */
521 if (res != 0)
522 {
523 mpu6500_interface_debug_print("mpu6500: set clock source failed.\n");
524 (void)mpu6500_deinit(&gs_handle);
525
526 return 1;
527 }
528 mpu6500_interface_debug_print("mpu6500: set the clock source pll.\n");
529 res = mpu6500_get_clock_source(&gs_handle, &clock_source);
530 if (res != 0)
531 {
532 mpu6500_interface_debug_print("mpu6500: get clock source failed.\n");
533 (void)mpu6500_deinit(&gs_handle);
534
535 return 1;
536 }
537 mpu6500_interface_debug_print("mpu6500: check clock source %s.\n", clock_source == MPU6500_CLOCK_SOURCE_PLL ? "ok" : "error");
538
539 /* mpu6500_set_ptat/mpu6500_get_ptat test */
540 mpu6500_interface_debug_print("mpu6500: mpu6500_set_ptat/mpu6500_get_ptat test.\n");
541
542 /* enable temperature sensor */
543 res = mpu6500_set_ptat(&gs_handle, MPU6500_BOOL_TRUE);
544 if (res != 0)
545 {
546 mpu6500_interface_debug_print("mpu6500: set ptat failed.\n");
547 (void)mpu6500_deinit(&gs_handle);
548
549 return 1;
550 }
551 mpu6500_interface_debug_print("mpu6500: enable temperature sensor.\n");
552 res = mpu6500_get_ptat(&gs_handle, &enable);
553 if (res != 0)
554 {
555 mpu6500_interface_debug_print("mpu6500: get ptat failed.\n");
556 (void)mpu6500_deinit(&gs_handle);
557
558 return 1;
559 }
560 mpu6500_interface_debug_print("mpu6500: check ptat %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
561
562 /* disable temperature sensor */
563 res = mpu6500_set_ptat(&gs_handle, MPU6500_BOOL_FALSE);
564 if (res != 0)
565 {
566 mpu6500_interface_debug_print("mpu6500: set ptat failed.\n");
567 (void)mpu6500_deinit(&gs_handle);
568
569 return 1;
570 }
571 mpu6500_interface_debug_print("mpu6500: disable temperature sensor.\n");
572 res = mpu6500_get_ptat(&gs_handle, &enable);
573 if (res != 0)
574 {
575 mpu6500_interface_debug_print("mpu6500: get ptat failed.\n");
576 (void)mpu6500_deinit(&gs_handle);
577
578 return 1;
579 }
580 mpu6500_interface_debug_print("mpu6500: check ptat %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
581
582 /* mpu6500_set_cycle_wake_up/mpu6500_get_cycle_wake_up test */
583 mpu6500_interface_debug_print("mpu6500: mpu6500_set_cycle_wake_up/mpu6500_get_cycle_wake_up test.\n");
584
585 /* enable cycle wake up */
587 if (res != 0)
588 {
589 mpu6500_interface_debug_print("mpu6500: set cycle wake up failed.\n");
590 (void)mpu6500_deinit(&gs_handle);
591
592 return 1;
593 }
594 mpu6500_interface_debug_print("mpu6500: enable cycle wake up.\n");
595 res = mpu6500_get_cycle_wake_up(&gs_handle, &enable);
596 if (res != 0)
597 {
598 mpu6500_interface_debug_print("mpu6500: get cycle wake up failed.\n");
599 (void)mpu6500_deinit(&gs_handle);
600
601 return 1;
602 }
603 mpu6500_interface_debug_print("mpu6500: check cycle wake up %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
604
605 /* disable cycle wake up */
607 if (res != 0)
608 {
609 mpu6500_interface_debug_print("mpu6500: set cycle wake up failed.\n");
610 (void)mpu6500_deinit(&gs_handle);
611
612 return 1;
613 }
614 mpu6500_interface_debug_print("mpu6500: disable cycle wake up.\n");
615 res = mpu6500_get_cycle_wake_up(&gs_handle, &enable);
616 if (res != 0)
617 {
618 mpu6500_interface_debug_print("mpu6500: get cycle wake up failed.\n");
619 (void)mpu6500_deinit(&gs_handle);
620
621 return 1;
622 }
623 mpu6500_interface_debug_print("mpu6500: check cycle wake up %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
624
625 /* mpu6500_set_sleep/mpu6500_get_sleep test */
626 mpu6500_interface_debug_print("mpu6500: mpu6500_set_sleep/mpu6500_get_sleep test.\n");
627
628 /* enable the sleep */
629 res = mpu6500_set_sleep(&gs_handle, MPU6500_BOOL_TRUE);
630 if (res != 0)
631 {
632 mpu6500_interface_debug_print("mpu6500: set sleep failed.\n");
633 (void)mpu6500_deinit(&gs_handle);
634
635 return 1;
636 }
637 mpu6500_interface_debug_print("mpu6500: enable the sleep.\n");
638 res = mpu6500_get_sleep(&gs_handle, &enable);
639 if (res != 0)
640 {
641 mpu6500_interface_debug_print("mpu6500: get sleep failed.\n");
642 (void)mpu6500_deinit(&gs_handle);
643
644 return 1;
645 }
646 mpu6500_interface_debug_print("mpu6500: check sleep %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
647
648 /* disable the sleep */
649 res = mpu6500_set_sleep(&gs_handle, MPU6500_BOOL_FALSE);
650 if (res != 0)
651 {
652 mpu6500_interface_debug_print("mpu6500: set sleep failed.\n");
653 (void)mpu6500_deinit(&gs_handle);
654
655 return 1;
656 }
657 mpu6500_interface_debug_print("mpu6500: disable the sleep.\n");
658 res = mpu6500_get_sleep(&gs_handle, &enable);
659 if (res != 0)
660 {
661 mpu6500_interface_debug_print("mpu6500: get sleep failed.\n");
662 (void)mpu6500_deinit(&gs_handle);
663
664 return 1;
665 }
666 mpu6500_interface_debug_print("mpu6500: check sleep %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
667
668 /* mpu6500_set_standby_mode/mpu6500_get_standby_mode test */
669 mpu6500_interface_debug_print("mpu6500: mpu6500_set_standby_mode/mpu6500_get_standby_mode test.\n");
670
671 /* enable standby mode */
673 if (res != 0)
674 {
675 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
676 (void)mpu6500_deinit(&gs_handle);
677
678 return 1;
679 }
680 mpu6500_interface_debug_print("mpu6500: enable acc x standby mode.\n");
681 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_ACC_X, &enable);
682 if (res != 0)
683 {
684 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
685 (void)mpu6500_deinit(&gs_handle);
686
687 return 1;
688 }
689 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
690
691 /* disable standby mode */
693 if (res != 0)
694 {
695 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
696 (void)mpu6500_deinit(&gs_handle);
697
698 return 1;
699 }
700 mpu6500_interface_debug_print("mpu6500: disable acc x standby mode.\n");
701 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_ACC_X, &enable);
702 if (res != 0)
703 {
704 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
705 (void)mpu6500_deinit(&gs_handle);
706
707 return 1;
708 }
709 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
710
711 /* enable standby mode */
713 if (res != 0)
714 {
715 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
716 (void)mpu6500_deinit(&gs_handle);
717
718 return 1;
719 }
720 mpu6500_interface_debug_print("mpu6500: enable acc y standby mode.\n");
721 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_ACC_Y, &enable);
722 if (res != 0)
723 {
724 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
725 (void)mpu6500_deinit(&gs_handle);
726
727 return 1;
728 }
729 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
730
731 /* disable standby mode */
733 if (res != 0)
734 {
735 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
736 (void)mpu6500_deinit(&gs_handle);
737
738 return 1;
739 }
740 mpu6500_interface_debug_print("mpu6500: disable acc y standby mode.\n");
741 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_ACC_Y, &enable);
742 if (res != 0)
743 {
744 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
745 (void)mpu6500_deinit(&gs_handle);
746
747 return 1;
748 }
749 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
750
751 /* enable standby mode */
753 if (res != 0)
754 {
755 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
756 (void)mpu6500_deinit(&gs_handle);
757
758 return 1;
759 }
760 mpu6500_interface_debug_print("mpu6500: enable acc z standby mode.\n");
761 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_ACC_Z, &enable);
762 if (res != 0)
763 {
764 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
765 (void)mpu6500_deinit(&gs_handle);
766
767 return 1;
768 }
769 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
770
771 /* disable standby mode */
773 if (res != 0)
774 {
775 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
776 (void)mpu6500_deinit(&gs_handle);
777
778 return 1;
779 }
780 mpu6500_interface_debug_print("mpu6500: disable acc z standby mode.\n");
781 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_ACC_Z, &enable);
782 if (res != 0)
783 {
784 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
785 (void)mpu6500_deinit(&gs_handle);
786
787 return 1;
788 }
789 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
790
791 /* enable standby mode */
793 if (res != 0)
794 {
795 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
796 (void)mpu6500_deinit(&gs_handle);
797
798 return 1;
799 }
800 mpu6500_interface_debug_print("mpu6500: enable gyro x standby mode.\n");
801 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_GYRO_X, &enable);
802 if (res != 0)
803 {
804 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
805 (void)mpu6500_deinit(&gs_handle);
806
807 return 1;
808 }
809 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
810
811 /* disable standby mode */
813 if (res != 0)
814 {
815 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
816 (void)mpu6500_deinit(&gs_handle);
817
818 return 1;
819 }
820 mpu6500_interface_debug_print("mpu6500: disable gyro x standby mode.\n");
821 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_GYRO_X, &enable);
822 if (res != 0)
823 {
824 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
825 (void)mpu6500_deinit(&gs_handle);
826
827 return 1;
828 }
829 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
830
831 /* enable standby mode */
833 if (res != 0)
834 {
835 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
836 (void)mpu6500_deinit(&gs_handle);
837
838 return 1;
839 }
840 mpu6500_interface_debug_print("mpu6500: enable gyro y standby mode.\n");
841 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_GYRO_Y, &enable);
842 if (res != 0)
843 {
844 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
845 (void)mpu6500_deinit(&gs_handle);
846
847 return 1;
848 }
849 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
850
851 /* disable standby mode */
853 if (res != 0)
854 {
855 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
856 (void)mpu6500_deinit(&gs_handle);
857
858 return 1;
859 }
860 mpu6500_interface_debug_print("mpu6500: disable gyro y standby mode.\n");
861 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_GYRO_Y, &enable);
862 if (res != 0)
863 {
864 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
865 (void)mpu6500_deinit(&gs_handle);
866
867 return 1;
868 }
869 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
870
871 /* enable standby mode */
873 if (res != 0)
874 {
875 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
876 (void)mpu6500_deinit(&gs_handle);
877
878 return 1;
879 }
880 mpu6500_interface_debug_print("mpu6500: enable gyro z standby mode.\n");
881 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_GYRO_Z, &enable);
882 if (res != 0)
883 {
884 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
885 (void)mpu6500_deinit(&gs_handle);
886
887 return 1;
888 }
889 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
890
891 /* disable standby mode */
893 if (res != 0)
894 {
895 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
896 (void)mpu6500_deinit(&gs_handle);
897
898 return 1;
899 }
900 mpu6500_interface_debug_print("mpu6500: disable gyro z standby mode.\n");
901 res = mpu6500_get_standby_mode(&gs_handle, MPU6500_SOURCE_GYRO_Z, &enable);
902 if (res != 0)
903 {
904 mpu6500_interface_debug_print("mpu6500: get standby mode failed.\n");
905 (void)mpu6500_deinit(&gs_handle);
906
907 return 1;
908 }
909 mpu6500_interface_debug_print("mpu6500: check standby mode %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
910
911 /* mpu6500_fifo_get/mpu6500_fifo_set test */
912 mpu6500_interface_debug_print("mpu6500: mpu6500_fifo_get/mpu6500_fifo_set test.\n");
913
914 for (i = 0; i < 8; i++)
915 {
916 data[i] = (uint8_t)(rand() % 256);
917 }
918 /* fifo set */
919 res = mpu6500_fifo_set(&gs_handle, data, 8);
920 if (res != 0)
921 {
922 mpu6500_interface_debug_print("mpu6500: fifo write failed.\n");
923 (void)mpu6500_deinit(&gs_handle);
924
925 return 1;
926 }
927 mpu6500_interface_debug_print("mpu6500: check fifo write %s.\n", (res == 0) ? "ok" : "error");
928
929 /* fifo get */
930 res = mpu6500_fifo_get(&gs_handle, data_check, 8);
931 if (res != 0)
932 {
933 mpu6500_interface_debug_print("mpu6500: fifo read failed.\n");
934 (void)mpu6500_deinit(&gs_handle);
935
936 return 1;
937 }
938 mpu6500_interface_debug_print("mpu6500: check fifo read %s.\n", (res == 0) ? "ok" : "error");
939
940 /* mpu6500_get_fifo_count test */
941 mpu6500_interface_debug_print("mpu6500: mpu6500_get_fifo_count test.\n");
942
943 /* fifo count */
944 res = mpu6500_get_fifo_count(&gs_handle, &cnt);
945 if (res != 0)
946 {
947 mpu6500_interface_debug_print("mpu6500: fifo count failed.\n");
948 (void)mpu6500_deinit(&gs_handle);
949
950 return 1;
951 }
952 mpu6500_interface_debug_print("mpu6500: fifo count %d.\n", cnt);
953
954 /* mpu6500_set_signal_path_reset test */
955 mpu6500_interface_debug_print("mpu6500: mpu6500_set_signal_path_reset test.\n");
956
957 /* temp reset */
959 if (res != 0)
960 {
961 mpu6500_interface_debug_print("mpu6500: set signal path reset failed.\n");
962 (void)mpu6500_deinit(&gs_handle);
963
964 return 1;
965 }
966 mpu6500_interface_debug_print("mpu6500: temp signal path reset.\n");
967 mpu6500_interface_debug_print("mpu6500: check signal path reset %s.\n", (res == 0) ? "ok" : "error");
968
969 /* accel reset */
971 if (res != 0)
972 {
973 mpu6500_interface_debug_print("mpu6500: set signal path reset failed.\n");
974 (void)mpu6500_deinit(&gs_handle);
975
976 return 1;
977 }
978 mpu6500_interface_debug_print("mpu6500: accel signal path reset.\n");
979 mpu6500_interface_debug_print("mpu6500: check signal path reset %s.\n", (res == 0) ? "ok" : "error");
980
981 /* gyro reset */
983 if (res != 0)
984 {
985 mpu6500_interface_debug_print("mpu6500: set signal path reset failed.\n");
986 (void)mpu6500_deinit(&gs_handle);
987
988 return 1;
989 }
990 mpu6500_interface_debug_print("mpu6500: gyro signal path reset.\n");
991 mpu6500_interface_debug_print("mpu6500: check signal path reset %s.\n", (res == 0) ? "ok" : "error");
992
993 /* mpu6500_set_sample_rate_divider/mpu6500_get_sample_rate_divider test */
994 mpu6500_interface_debug_print("mpu6500: mpu6500_set_sample_rate_divider/mpu6500_get_sample_rate_divider test.\n");
995
996 div_in = (uint8_t)(rand() % 256);
997 res = mpu6500_set_sample_rate_divider(&gs_handle, div_in);
998 if (res != 0)
999 {
1000 mpu6500_interface_debug_print("mpu6500: set sample rate divider failed.\n");
1001 (void)mpu6500_deinit(&gs_handle);
1002
1003 return 1;
1004 }
1005 mpu6500_interface_debug_print("mpu6500: set sample rate divider 0x%02X.\n", div);
1006 res = mpu6500_get_sample_rate_divider(&gs_handle, &div_check);
1007 if (res != 0)
1008 {
1009 mpu6500_interface_debug_print("mpu6500: get sample rate divider failed.\n");
1010 (void)mpu6500_deinit(&gs_handle);
1011
1012 return 1;
1013 }
1014 mpu6500_interface_debug_print("mpu6500: check sample rate divider %s.\n", (div_in == div_check) ? "ok" : "error");
1015
1016 /* mpu6500_set_extern_sync/mpu6500_get_extern_sync test */
1017 mpu6500_interface_debug_print("mpu6500: mpu6500_set_extern_sync/mpu6500_get_extern_sync test.\n");
1018
1019 /* input disabled */
1021 if (res != 0)
1022 {
1023 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1024 (void)mpu6500_deinit(&gs_handle);
1025
1026 return 1;
1027 }
1028 mpu6500_interface_debug_print("mpu6500: set extern sync input disabled.\n");
1029 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1030 if (res != 0)
1031 {
1032 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1033 (void)mpu6500_deinit(&gs_handle);
1034
1035 return 1;
1036 }
1037 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_INPUT_DISABLED) ? "ok" : "error");
1038
1039 /* temp out low */
1041 if (res != 0)
1042 {
1043 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1044 (void)mpu6500_deinit(&gs_handle);
1045
1046 return 1;
1047 }
1048 mpu6500_interface_debug_print("mpu6500: set extern sync temp out low.\n");
1049 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1050 if (res != 0)
1051 {
1052 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1053 (void)mpu6500_deinit(&gs_handle);
1054
1055 return 1;
1056 }
1057 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_TEMP_OUT_L) ? "ok" : "error");
1058
1059 /* gyro xout low */
1061 if (res != 0)
1062 {
1063 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1064 (void)mpu6500_deinit(&gs_handle);
1065
1066 return 1;
1067 }
1068 mpu6500_interface_debug_print("mpu6500: set extern sync gyro xout low.\n");
1069 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1070 if (res != 0)
1071 {
1072 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1073 (void)mpu6500_deinit(&gs_handle);
1074
1075 return 1;
1076 }
1077 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_GYRO_XOUT_L) ? "ok" : "error");
1078
1079 /* gyro yout low */
1081 if (res != 0)
1082 {
1083 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1084 (void)mpu6500_deinit(&gs_handle);
1085
1086 return 1;
1087 }
1088 mpu6500_interface_debug_print("mpu6500: set extern sync gyro yout low.\n");
1089 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1090 if (res != 0)
1091 {
1092 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1093 (void)mpu6500_deinit(&gs_handle);
1094
1095 return 1;
1096 }
1097 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_GYRO_YOUT_L) ? "ok" : "error");
1098
1099 /* gyro zout low */
1101 if (res != 0)
1102 {
1103 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1104 (void)mpu6500_deinit(&gs_handle);
1105
1106 return 1;
1107 }
1108 mpu6500_interface_debug_print("mpu6500: set extern sync gyro zout low.\n");
1109 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1110 if (res != 0)
1111 {
1112 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1113 (void)mpu6500_deinit(&gs_handle);
1114
1115 return 1;
1116 }
1117 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_GYRO_ZOUT_L) ? "ok" : "error");
1118
1119 /* accel xout low */
1121 if (res != 0)
1122 {
1123 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1124 (void)mpu6500_deinit(&gs_handle);
1125
1126 return 1;
1127 }
1128 mpu6500_interface_debug_print("mpu6500: set extern sync accel xout low.\n");
1129 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1130 if (res != 0)
1131 {
1132 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1133 (void)mpu6500_deinit(&gs_handle);
1134
1135 return 1;
1136 }
1137 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_ACCEL_XOUT_L) ? "ok" : "error");
1138
1139 /* accel yout low */
1141 if (res != 0)
1142 {
1143 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1144 (void)mpu6500_deinit(&gs_handle);
1145
1146 return 1;
1147 }
1148 mpu6500_interface_debug_print("mpu6500: set extern sync accel yout low.\n");
1149 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1150 if (res != 0)
1151 {
1152 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1153 (void)mpu6500_deinit(&gs_handle);
1154
1155 return 1;
1156 }
1157 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_ACCEL_YOUT_L) ? "ok" : "error");
1158
1159 /* accel zout low */
1161 if (res != 0)
1162 {
1163 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
1164 (void)mpu6500_deinit(&gs_handle);
1165
1166 return 1;
1167 }
1168 mpu6500_interface_debug_print("mpu6500: set extern sync accel zout low.\n");
1169 res = mpu6500_get_extern_sync(&gs_handle, &sync);
1170 if (res != 0)
1171 {
1172 mpu6500_interface_debug_print("mpu6500: get extern sync failed.\n");
1173 (void)mpu6500_deinit(&gs_handle);
1174
1175 return 1;
1176 }
1177 mpu6500_interface_debug_print("mpu6500: check extern sync %s.\n", (sync == MPU6500_EXTERN_SYNC_ACCEL_ZOUT_L) ? "ok" : "error");
1178
1179 /* mpu6500_set_low_pass_filter/mpu6500_get_low_pass_filter test */
1180 mpu6500_interface_debug_print("mpu6500: mpu6500_set_low_pass_filter/mpu6500_get_low_pass_filter test.\n");
1181
1182 /* filter 0 */
1184 if (res != 0)
1185 {
1186 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
1187 (void)mpu6500_deinit(&gs_handle);
1188
1189 return 1;
1190 }
1191 mpu6500_interface_debug_print("mpu6500: set low pass filter 0.\n");
1192 res = mpu6500_get_low_pass_filter(&gs_handle, &filter);
1193 if (res != 0)
1194 {
1195 mpu6500_interface_debug_print("mpu6500: get low pass filter failed.\n");
1196 (void)mpu6500_deinit(&gs_handle);
1197
1198 return 1;
1199 }
1200 mpu6500_interface_debug_print("mpu6500: check low pass filter %s.\n", (filter == MPU6500_LOW_PASS_FILTER_0) ? "ok" : "error");
1201
1202 /* filter 1 */
1204 if (res != 0)
1205 {
1206 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
1207 (void)mpu6500_deinit(&gs_handle);
1208
1209 return 1;
1210 }
1211 mpu6500_interface_debug_print("mpu6500: set low pass filter 1.\n");
1212 res = mpu6500_get_low_pass_filter(&gs_handle, &filter);
1213 if (res != 0)
1214 {
1215 mpu6500_interface_debug_print("mpu6500: get low pass filter failed.\n");
1216 (void)mpu6500_deinit(&gs_handle);
1217
1218 return 1;
1219 }
1220 mpu6500_interface_debug_print("mpu6500: check low pass filter %s.\n", (filter == MPU6500_LOW_PASS_FILTER_1) ? "ok" : "error");
1221
1222 /* filter 2 */
1224 if (res != 0)
1225 {
1226 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
1227 (void)mpu6500_deinit(&gs_handle);
1228
1229 return 1;
1230 }
1231 mpu6500_interface_debug_print("mpu6500: set low pass filter 2.\n");
1232 res = mpu6500_get_low_pass_filter(&gs_handle, &filter);
1233 if (res != 0)
1234 {
1235 mpu6500_interface_debug_print("mpu6500: get low pass filter failed.\n");
1236 (void)mpu6500_deinit(&gs_handle);
1237
1238 return 1;
1239 }
1240 mpu6500_interface_debug_print("mpu6500: check low pass filter %s.\n", (filter == MPU6500_LOW_PASS_FILTER_2) ? "ok" : "error");
1241
1242 /* filter 3 */
1244 if (res != 0)
1245 {
1246 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
1247 (void)mpu6500_deinit(&gs_handle);
1248
1249 return 1;
1250 }
1251 mpu6500_interface_debug_print("mpu6500: set low pass filter 3.\n");
1252 res = mpu6500_get_low_pass_filter(&gs_handle, &filter);
1253 if (res != 0)
1254 {
1255 mpu6500_interface_debug_print("mpu6500: get low pass filter failed.\n");
1256 (void)mpu6500_deinit(&gs_handle);
1257
1258 return 1;
1259 }
1260 mpu6500_interface_debug_print("mpu6500: check low pass filter %s.\n", (filter == MPU6500_LOW_PASS_FILTER_3) ? "ok" : "error");
1261
1262 /* filter 4 */
1264 if (res != 0)
1265 {
1266 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
1267 (void)mpu6500_deinit(&gs_handle);
1268
1269 return 1;
1270 }
1271 mpu6500_interface_debug_print("mpu6500: set low pass filter 4.\n");
1272 res = mpu6500_get_low_pass_filter(&gs_handle, &filter);
1273 if (res != 0)
1274 {
1275 mpu6500_interface_debug_print("mpu6500: get low pass filter failed.\n");
1276 (void)mpu6500_deinit(&gs_handle);
1277
1278 return 1;
1279 }
1280 mpu6500_interface_debug_print("mpu6500: check low pass filter %s.\n", (filter == MPU6500_LOW_PASS_FILTER_4) ? "ok" : "error");
1281
1282 /* filter 5 */
1284 if (res != 0)
1285 {
1286 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
1287 (void)mpu6500_deinit(&gs_handle);
1288
1289 return 1;
1290 }
1291 mpu6500_interface_debug_print("mpu6500: set low pass filter 5.\n");
1292 res = mpu6500_get_low_pass_filter(&gs_handle, &filter);
1293 if (res != 0)
1294 {
1295 mpu6500_interface_debug_print("mpu6500: get low pass filter failed.\n");
1296 (void)mpu6500_deinit(&gs_handle);
1297
1298 return 1;
1299 }
1300 mpu6500_interface_debug_print("mpu6500: check low pass filter %s.\n", (filter == MPU6500_LOW_PASS_FILTER_5) ? "ok" : "error");
1301
1302 /* filter 6 */
1304 if (res != 0)
1305 {
1306 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
1307 (void)mpu6500_deinit(&gs_handle);
1308
1309 return 1;
1310 }
1311 mpu6500_interface_debug_print("mpu6500: set low pass filter 6.\n");
1312 res = mpu6500_get_low_pass_filter(&gs_handle, &filter);
1313 if (res != 0)
1314 {
1315 mpu6500_interface_debug_print("mpu6500: get low pass filter failed.\n");
1316 (void)mpu6500_deinit(&gs_handle);
1317
1318 return 1;
1319 }
1320 mpu6500_interface_debug_print("mpu6500: check low pass filter %s.\n", (filter == MPU6500_LOW_PASS_FILTER_6) ? "ok" : "error");
1321
1322 /* mpu6500_set_gyroscope_test/mpu6500_get_gyroscope_test test */
1323 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyroscope_test/mpu6500_get_gyroscope_test test.\n");
1324
1325 /* enable axis x */
1327 if (res != 0)
1328 {
1329 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
1330 (void)mpu6500_deinit(&gs_handle);
1331
1332 return 1;
1333 }
1334 mpu6500_interface_debug_print("mpu6500: enable axis x.\n");
1335 res = mpu6500_get_gyroscope_test(&gs_handle, MPU6500_AXIS_X, &enable);
1336 if (res != 0)
1337 {
1338 mpu6500_interface_debug_print("mpu6500: get gyroscope test failed.\n");
1339 (void)mpu6500_deinit(&gs_handle);
1340
1341 return 1;
1342 }
1343 mpu6500_interface_debug_print("mpu6500: check gyroscope test %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1344
1345 /* disable axis x */
1347 if (res != 0)
1348 {
1349 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
1350 (void)mpu6500_deinit(&gs_handle);
1351
1352 return 1;
1353 }
1354 mpu6500_interface_debug_print("mpu6500: disable axis x.\n");
1355 res = mpu6500_get_gyroscope_test(&gs_handle, MPU6500_AXIS_X, &enable);
1356 if (res != 0)
1357 {
1358 mpu6500_interface_debug_print("mpu6500: get gyroscope test failed.\n");
1359 (void)mpu6500_deinit(&gs_handle);
1360
1361 return 1;
1362 }
1363 mpu6500_interface_debug_print("mpu6500: check gyroscope test %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1364
1365 /* enable axis y */
1367 if (res != 0)
1368 {
1369 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
1370 (void)mpu6500_deinit(&gs_handle);
1371
1372 return 1;
1373 }
1374 mpu6500_interface_debug_print("mpu6500: enable axis y.\n");
1375 res = mpu6500_get_gyroscope_test(&gs_handle, MPU6500_AXIS_Y, &enable);
1376 if (res != 0)
1377 {
1378 mpu6500_interface_debug_print("mpu6500: get gyroscope test failed.\n");
1379 (void)mpu6500_deinit(&gs_handle);
1380
1381 return 1;
1382 }
1383 mpu6500_interface_debug_print("mpu6500: check gyroscope test %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1384
1385 /* disable axis y */
1387 if (res != 0)
1388 {
1389 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
1390 (void)mpu6500_deinit(&gs_handle);
1391
1392 return 1;
1393 }
1394 mpu6500_interface_debug_print("mpu6500: disable axis y.\n");
1395 res = mpu6500_get_gyroscope_test(&gs_handle, MPU6500_AXIS_Y, &enable);
1396 if (res != 0)
1397 {
1398 mpu6500_interface_debug_print("mpu6500: get gyroscope test failed.\n");
1399 (void)mpu6500_deinit(&gs_handle);
1400
1401 return 1;
1402 }
1403 mpu6500_interface_debug_print("mpu6500: check gyroscope test %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1404
1405 /* enable axis z */
1407 if (res != 0)
1408 {
1409 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
1410 (void)mpu6500_deinit(&gs_handle);
1411
1412 return 1;
1413 }
1414 mpu6500_interface_debug_print("mpu6500: enable axis z.\n");
1415 res = mpu6500_get_gyroscope_test(&gs_handle, MPU6500_AXIS_Z, &enable);
1416 if (res != 0)
1417 {
1418 mpu6500_interface_debug_print("mpu6500: get gyroscope test failed.\n");
1419 (void)mpu6500_deinit(&gs_handle);
1420
1421 return 1;
1422 }
1423 mpu6500_interface_debug_print("mpu6500: check gyroscope test %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1424
1425 /* disable axis z */
1427 if (res != 0)
1428 {
1429 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
1430 (void)mpu6500_deinit(&gs_handle);
1431
1432 return 1;
1433 }
1434 mpu6500_interface_debug_print("mpu6500: disable axis z.\n");
1435 res = mpu6500_get_gyroscope_test(&gs_handle, MPU6500_AXIS_Z, &enable);
1436 if (res != 0)
1437 {
1438 mpu6500_interface_debug_print("mpu6500: get gyroscope test failed.\n");
1439 (void)mpu6500_deinit(&gs_handle);
1440
1441 return 1;
1442 }
1443 mpu6500_interface_debug_print("mpu6500: check gyroscope test %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1444
1445 /* mpu6500_set_gyroscope_range/mpu6500_get_gyroscope_range test */
1446 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyroscope_range/mpu6500_get_gyroscope_range test.\n");
1447
1448 /* 250 dps */
1450 if (res != 0)
1451 {
1452 mpu6500_interface_debug_print("mpu6500: set gyroscope range failed.\n");
1453 (void)mpu6500_deinit(&gs_handle);
1454
1455 return 1;
1456 }
1457 mpu6500_interface_debug_print("mpu6500: set gyroscope range 250 dps.\n");
1458 res = mpu6500_get_gyroscope_range(&gs_handle, &range_g);
1459 if (res != 0)
1460 {
1461 mpu6500_interface_debug_print("mpu6500: get gyroscope range failed.\n");
1462 (void)mpu6500_deinit(&gs_handle);
1463
1464 return 1;
1465 }
1466 mpu6500_interface_debug_print("mpu6500: check gyroscope range %s.\n", range_g == MPU6500_GYROSCOPE_RANGE_250DPS ? "ok" : "error");
1467
1468 /* 500 dps */
1470 if (res != 0)
1471 {
1472 mpu6500_interface_debug_print("mpu6500: set gyroscope range failed.\n");
1473 (void)mpu6500_deinit(&gs_handle);
1474
1475 return 1;
1476 }
1477 mpu6500_interface_debug_print("mpu6500: set gyroscope range 500 dps.\n");
1478 res = mpu6500_get_gyroscope_range(&gs_handle, &range_g);
1479 if (res != 0)
1480 {
1481 mpu6500_interface_debug_print("mpu6500: get gyroscope range failed.\n");
1482 (void)mpu6500_deinit(&gs_handle);
1483
1484 return 1;
1485 }
1486 mpu6500_interface_debug_print("mpu6500: check gyroscope range %s.\n", range_g == MPU6500_GYROSCOPE_RANGE_500DPS ? "ok" : "error");
1487
1488 /* 1000 dps */
1490 if (res != 0)
1491 {
1492 mpu6500_interface_debug_print("mpu6500: set gyroscope range failed.\n");
1493 (void)mpu6500_deinit(&gs_handle);
1494
1495 return 1;
1496 }
1497 mpu6500_interface_debug_print("mpu6500: set gyroscope range 1000 dps.\n");
1498 res = mpu6500_get_gyroscope_range(&gs_handle, &range_g);
1499 if (res != 0)
1500 {
1501 mpu6500_interface_debug_print("mpu6500: get gyroscope range failed.\n");
1502 (void)mpu6500_deinit(&gs_handle);
1503
1504 return 1;
1505 }
1506 mpu6500_interface_debug_print("mpu6500: check gyroscope range %s.\n", range_g == MPU6500_GYROSCOPE_RANGE_1000DPS ? "ok" : "error");
1507
1508 /* 2000 dps */
1510 if (res != 0)
1511 {
1512 mpu6500_interface_debug_print("mpu6500: set gyroscope range failed.\n");
1513 (void)mpu6500_deinit(&gs_handle);
1514
1515 return 1;
1516 }
1517 mpu6500_interface_debug_print("mpu6500: set gyroscope range 2000 dps.\n");
1518 res = mpu6500_get_gyroscope_range(&gs_handle, &range_g);
1519 if (res != 0)
1520 {
1521 mpu6500_interface_debug_print("mpu6500: get gyroscope range failed.\n");
1522 (void)mpu6500_deinit(&gs_handle);
1523
1524 return 1;
1525 }
1526 mpu6500_interface_debug_print("mpu6500: check gyroscope range %s.\n", range_g == MPU6500_GYROSCOPE_RANGE_2000DPS ? "ok" : "error");
1527
1528 /* mpu6500_set_accelerometer_test/mpu6500_get_accelerometer_test test */
1529 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_test/mpu6500_get_accelerometer_test test.\n");
1530
1531 /* enable accelerometer x */
1533 if (res != 0)
1534 {
1535 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
1536 (void)mpu6500_deinit(&gs_handle);
1537
1538 return 1;
1539 }
1540 mpu6500_interface_debug_print("mpu6500: enable accelerometer x.\n");
1541 res = mpu6500_get_accelerometer_test(&gs_handle, MPU6500_AXIS_X, &enable);
1542 if (res != 0)
1543 {
1544 mpu6500_interface_debug_print("mpu6500: get accelerometer test failed.\n");
1545 (void)mpu6500_deinit(&gs_handle);
1546
1547 return 1;
1548 }
1549 mpu6500_interface_debug_print("mpu6500: check accelerometer test %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1550
1551 /* disable accelerometer x */
1553 if (res != 0)
1554 {
1555 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
1556 (void)mpu6500_deinit(&gs_handle);
1557
1558 return 1;
1559 }
1560 mpu6500_interface_debug_print("mpu6500: disable accelerometer x.\n");
1561 res = mpu6500_get_accelerometer_test(&gs_handle, MPU6500_AXIS_X, &enable);
1562 if (res != 0)
1563 {
1564 mpu6500_interface_debug_print("mpu6500: get accelerometer test failed.\n");
1565 (void)mpu6500_deinit(&gs_handle);
1566
1567 return 1;
1568 }
1569 mpu6500_interface_debug_print("mpu6500: check accelerometer test %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1570
1571 /* enable accelerometer y */
1573 if (res != 0)
1574 {
1575 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
1576 (void)mpu6500_deinit(&gs_handle);
1577
1578 return 1;
1579 }
1580 mpu6500_interface_debug_print("mpu6500: enable accelerometer y.\n");
1581 res = mpu6500_get_accelerometer_test(&gs_handle, MPU6500_AXIS_Y, &enable);
1582 if (res != 0)
1583 {
1584 mpu6500_interface_debug_print("mpu6500: get accelerometer test failed.\n");
1585 (void)mpu6500_deinit(&gs_handle);
1586
1587 return 1;
1588 }
1589 mpu6500_interface_debug_print("mpu6500: check accelerometer test %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1590
1591 /* disable accelerometer y */
1593 if (res != 0)
1594 {
1595 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
1596 (void)mpu6500_deinit(&gs_handle);
1597
1598 return 1;
1599 }
1600 mpu6500_interface_debug_print("mpu6500: disable accelerometer y.\n");
1601 res = mpu6500_get_accelerometer_test(&gs_handle, MPU6500_AXIS_Y, &enable);
1602 if (res != 0)
1603 {
1604 mpu6500_interface_debug_print("mpu6500: get accelerometer test failed.\n");
1605 (void)mpu6500_deinit(&gs_handle);
1606
1607 return 1;
1608 }
1609 mpu6500_interface_debug_print("mpu6500: check accelerometer test %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1610
1611 /* enable accelerometer z */
1613 if (res != 0)
1614 {
1615 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
1616 (void)mpu6500_deinit(&gs_handle);
1617
1618 return 1;
1619 }
1620 mpu6500_interface_debug_print("mpu6500: enable accelerometer z.\n");
1621 res = mpu6500_get_accelerometer_test(&gs_handle, MPU6500_AXIS_Z, &enable);
1622 if (res != 0)
1623 {
1624 mpu6500_interface_debug_print("mpu6500: get accelerometer test failed.\n");
1625 (void)mpu6500_deinit(&gs_handle);
1626
1627 return 1;
1628 }
1629 mpu6500_interface_debug_print("mpu6500: check accelerometer test %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1630
1631 /* disable accelerometer z */
1633 if (res != 0)
1634 {
1635 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
1636 (void)mpu6500_deinit(&gs_handle);
1637
1638 return 1;
1639 }
1640 mpu6500_interface_debug_print("mpu6500: disable accelerometer z.\n");
1641 res = mpu6500_get_accelerometer_test(&gs_handle, MPU6500_AXIS_Z, &enable);
1642 if (res != 0)
1643 {
1644 mpu6500_interface_debug_print("mpu6500: get accelerometer test failed.\n");
1645 (void)mpu6500_deinit(&gs_handle);
1646
1647 return 1;
1648 }
1649 mpu6500_interface_debug_print("mpu6500: check accelerometer test %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1650
1651 /* mpu6500_set_accelerometer_range/mpu6500_get_accelerometer_range test */
1652 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_range/mpu6500_get_accelerometer_range test.\n");
1653
1654 /* 2g */
1656 if (res != 0)
1657 {
1658 mpu6500_interface_debug_print("mpu6500: set accelerometer range failed.\n");
1659 (void)mpu6500_deinit(&gs_handle);
1660
1661 return 1;
1662 }
1663 mpu6500_interface_debug_print("mpu6500: set accelerometer range 2g.\n");
1664 res = mpu6500_get_accelerometer_range(&gs_handle, &range_a);
1665 if (res != 0)
1666 {
1667 mpu6500_interface_debug_print("mpu6500: get accelerometer range failed.\n");
1668 (void)mpu6500_deinit(&gs_handle);
1669
1670 return 1;
1671 }
1672 mpu6500_interface_debug_print("mpu6500: check accelerometer range %s.\n", range_a == MPU6500_ACCELEROMETER_RANGE_2G ? "ok" : "error");
1673
1674 /* 4g */
1676 if (res != 0)
1677 {
1678 mpu6500_interface_debug_print("mpu6500: set accelerometer range failed.\n");
1679 (void)mpu6500_deinit(&gs_handle);
1680
1681 return 1;
1682 }
1683 mpu6500_interface_debug_print("mpu6500: set accelerometer range 4g.\n");
1684 res = mpu6500_get_accelerometer_range(&gs_handle, &range_a);
1685 if (res != 0)
1686 {
1687 mpu6500_interface_debug_print("mpu6500: get accelerometer range failed.\n");
1688 (void)mpu6500_deinit(&gs_handle);
1689
1690 return 1;
1691 }
1692 mpu6500_interface_debug_print("mpu6500: check accelerometer range %s.\n", range_a == MPU6500_ACCELEROMETER_RANGE_4G ? "ok" : "error");
1693
1694 /* 8g */
1696 if (res != 0)
1697 {
1698 mpu6500_interface_debug_print("mpu6500: set accelerometer range failed.\n");
1699 (void)mpu6500_deinit(&gs_handle);
1700
1701 return 1;
1702 }
1703 mpu6500_interface_debug_print("mpu6500: set accelerometer range 8g.\n");
1704 res = mpu6500_get_accelerometer_range(&gs_handle, &range_a);
1705 if (res != 0)
1706 {
1707 mpu6500_interface_debug_print("mpu6500: get accelerometer range failed.\n");
1708 (void)mpu6500_deinit(&gs_handle);
1709
1710 return 1;
1711 }
1712 mpu6500_interface_debug_print("mpu6500: check accelerometer range %s.\n", range_a == MPU6500_ACCELEROMETER_RANGE_8G ? "ok" : "error");
1713
1714 /* 16g */
1716 if (res != 0)
1717 {
1718 mpu6500_interface_debug_print("mpu6500: set accelerometer range failed.\n");
1719 (void)mpu6500_deinit(&gs_handle);
1720
1721 return 1;
1722 }
1723 mpu6500_interface_debug_print("mpu6500: set accelerometer range 16g.\n");
1724 res = mpu6500_get_accelerometer_range(&gs_handle, &range_a);
1725 if (res != 0)
1726 {
1727 mpu6500_interface_debug_print("mpu6500: get accelerometer range failed.\n");
1728 (void)mpu6500_deinit(&gs_handle);
1729
1730 return 1;
1731 }
1732 mpu6500_interface_debug_print("mpu6500: check accelerometer range %s.\n", range_a == MPU6500_ACCELEROMETER_RANGE_16G ? "ok" : "error");
1733
1734 /* mpu6500_set_fifo_enable/mpu6500_get_fifo_enable test */
1735 mpu6500_interface_debug_print("mpu6500: mpu6500_set_fifo_enable/mpu6500_get_fifo_enable test.\n");
1736
1737 /* set fifo temp enable */
1739 if (res != 0)
1740 {
1741 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1742 (void)mpu6500_deinit(&gs_handle);
1743
1744 return 1;
1745 }
1746 mpu6500_interface_debug_print("mpu6500: set fifo temp enable.\n");
1747 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_TEMP, &enable);
1748 if (res != 0)
1749 {
1750 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1751 (void)mpu6500_deinit(&gs_handle);
1752
1753 return 1;
1754 }
1755 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1756
1757 /* set fifo temp disable */
1759 if (res != 0)
1760 {
1761 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1762 (void)mpu6500_deinit(&gs_handle);
1763
1764 return 1;
1765 }
1766 mpu6500_interface_debug_print("mpu6500: set fifo temp disable.\n");
1767 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_TEMP, &enable);
1768 if (res != 0)
1769 {
1770 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1771 (void)mpu6500_deinit(&gs_handle);
1772
1773 return 1;
1774 }
1775 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1776
1777 /* set fifo gyroscope x enable */
1779 if (res != 0)
1780 {
1781 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1782 (void)mpu6500_deinit(&gs_handle);
1783
1784 return 1;
1785 }
1786 mpu6500_interface_debug_print("mpu6500: set fifo gyroscope x enable.\n");
1787 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_XG, &enable);
1788 if (res != 0)
1789 {
1790 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1791 (void)mpu6500_deinit(&gs_handle);
1792
1793 return 1;
1794 }
1795 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1796
1797 /* set fifo gyroscope x disable */
1799 if (res != 0)
1800 {
1801 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1802 (void)mpu6500_deinit(&gs_handle);
1803
1804 return 1;
1805 }
1806 mpu6500_interface_debug_print("mpu6500: set fifo gyroscope x disable.\n");
1807 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_XG, &enable);
1808 if (res != 0)
1809 {
1810 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1811 (void)mpu6500_deinit(&gs_handle);
1812
1813 return 1;
1814 }
1815 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1816
1817 /* set fifo gyroscope y enable */
1819 if (res != 0)
1820 {
1821 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1822 (void)mpu6500_deinit(&gs_handle);
1823
1824 return 1;
1825 }
1826 mpu6500_interface_debug_print("mpu6500: set fifo gyroscope y enable.\n");
1827 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_YG, &enable);
1828 if (res != 0)
1829 {
1830 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1831 (void)mpu6500_deinit(&gs_handle);
1832
1833 return 1;
1834 }
1835 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1836
1837 /* set fifo gyroscope y disable */
1839 if (res != 0)
1840 {
1841 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1842 (void)mpu6500_deinit(&gs_handle);
1843
1844 return 1;
1845 }
1846 mpu6500_interface_debug_print("mpu6500: set fifo gyroscope y disable.\n");
1847 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_YG, &enable);
1848 if (res != 0)
1849 {
1850 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1851 (void)mpu6500_deinit(&gs_handle);
1852
1853 return 1;
1854 }
1855 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1856
1857 /* set fifo gyroscope z enable */
1859 if (res != 0)
1860 {
1861 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1862 (void)mpu6500_deinit(&gs_handle);
1863
1864 return 1;
1865 }
1866 mpu6500_interface_debug_print("mpu6500: set fifo gyroscope z enable.\n");
1867 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_ZG, &enable);
1868 if (res != 0)
1869 {
1870 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1871 (void)mpu6500_deinit(&gs_handle);
1872
1873 return 1;
1874 }
1875 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1876
1877 /* set fifo gyroscope z disable */
1879 if (res != 0)
1880 {
1881 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1882 (void)mpu6500_deinit(&gs_handle);
1883
1884 return 1;
1885 }
1886 mpu6500_interface_debug_print("mpu6500: set fifo gyroscope z disable.\n");
1887 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_ZG, &enable);
1888 if (res != 0)
1889 {
1890 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1891 (void)mpu6500_deinit(&gs_handle);
1892
1893 return 1;
1894 }
1895 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1896
1897 /* set fifo accelerometer enable */
1899 if (res != 0)
1900 {
1901 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1902 (void)mpu6500_deinit(&gs_handle);
1903
1904 return 1;
1905 }
1906 mpu6500_interface_debug_print("mpu6500: set fifo accelerometer enable.\n");
1907 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_ACCEL, &enable);
1908 if (res != 0)
1909 {
1910 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1911 (void)mpu6500_deinit(&gs_handle);
1912
1913 return 1;
1914 }
1915 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
1916
1917 /* set fifo accelerometer disable */
1919 if (res != 0)
1920 {
1921 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
1922 (void)mpu6500_deinit(&gs_handle);
1923
1924 return 1;
1925 }
1926 mpu6500_interface_debug_print("mpu6500: set fifo accelerometer disable.\n");
1927 res = mpu6500_get_fifo_enable(&gs_handle, MPU6500_FIFO_ACCEL, &enable);
1928 if (res != 0)
1929 {
1930 mpu6500_interface_debug_print("mpu6500: get fifo enable failed.\n");
1931 (void)mpu6500_deinit(&gs_handle);
1932
1933 return 1;
1934 }
1935 mpu6500_interface_debug_print("mpu6500: check fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
1936
1937 /* mpu6500_set_interrupt_level/mpu6500_get_interrupt_level test */
1938 mpu6500_interface_debug_print("mpu6500: mpu6500_set_interrupt_level/mpu6500_get_interrupt_level test.\n");
1939
1940 /* high level */
1942 if (res != 0)
1943 {
1944 mpu6500_interface_debug_print("mpu6500: set interrupt level failed.\n");
1945 (void)mpu6500_deinit(&gs_handle);
1946
1947 return 1;
1948 }
1949 mpu6500_interface_debug_print("mpu6500: set interrupt high level.\n");
1950 res = mpu6500_get_interrupt_level(&gs_handle, &level);
1951 if (res != 0)
1952 {
1953 mpu6500_interface_debug_print("mpu6500: get interrupt level failed.\n");
1954 (void)mpu6500_deinit(&gs_handle);
1955
1956 return 1;
1957 }
1958 mpu6500_interface_debug_print("mpu6500: check interrupt level %s.\n", level == MPU6500_PIN_LEVEL_HIGH ? "ok" : "error");
1959
1960 /* low level */
1962 if (res != 0)
1963 {
1964 mpu6500_interface_debug_print("mpu6500: set interrupt level failed.\n");
1965 (void)mpu6500_deinit(&gs_handle);
1966
1967 return 1;
1968 }
1969 mpu6500_interface_debug_print("mpu6500: set interrupt low level.\n");
1970 res = mpu6500_get_interrupt_level(&gs_handle, &level);
1971 if (res != 0)
1972 {
1973 mpu6500_interface_debug_print("mpu6500: get interrupt level failed.\n");
1974 (void)mpu6500_deinit(&gs_handle);
1975
1976 return 1;
1977 }
1978 mpu6500_interface_debug_print("mpu6500: check interrupt level %s.\n", level == MPU6500_PIN_LEVEL_LOW ? "ok" : "error");
1979
1980 /* mpu6500_set_interrupt_pin_type/mpu6500_get_interrupt_pin_type test */
1981 mpu6500_interface_debug_print("mpu6500: mpu6500_set_interrupt_pin_type/mpu6500_get_interrupt_pin_type test.\n");
1982
1983 /* push-pull */
1985 if (res != 0)
1986 {
1987 mpu6500_interface_debug_print("mpu6500: set interrupt pin type failed.\n");
1988 (void)mpu6500_deinit(&gs_handle);
1989
1990 return 1;
1991 }
1992 mpu6500_interface_debug_print("mpu6500: set interrupt pin type push pull.\n");
1993 res = mpu6500_get_interrupt_pin_type(&gs_handle, &pin);
1994 if (res != 0)
1995 {
1996 mpu6500_interface_debug_print("mpu6500: get interrupt pin type failed.\n");
1997 (void)mpu6500_deinit(&gs_handle);
1998
1999 return 1;
2000 }
2001 mpu6500_interface_debug_print("mpu6500: check interrupt pin type %s.\n", pin == MPU6500_PIN_TYPE_PUSH_PULL ? "ok" : "error");
2002
2003 /* open drain */
2005 if (res != 0)
2006 {
2007 mpu6500_interface_debug_print("mpu6500: set interrupt pin type failed.\n");
2008 (void)mpu6500_deinit(&gs_handle);
2009
2010 return 1;
2011 }
2012 mpu6500_interface_debug_print("mpu6500: set interrupt pin type open drain.\n");
2013 res = mpu6500_get_interrupt_pin_type(&gs_handle, &pin);
2014 if (res != 0)
2015 {
2016 mpu6500_interface_debug_print("mpu6500: get interrupt pin type failed.\n");
2017 (void)mpu6500_deinit(&gs_handle);
2018
2019 return 1;
2020 }
2021 mpu6500_interface_debug_print("mpu6500: check interrupt pin type %s.\n", pin == MPU6500_PIN_TYPE_OPEN_DRAIN ? "ok" : "error");
2022
2023 /* mpu6500_set_interrupt_latch/mpu6500_get_interrupt_latch test */
2024 mpu6500_interface_debug_print("mpu6500: mpu6500_set_interrupt_latch/mpu6500_get_interrupt_latch test.\n");
2025
2026 /* enable latch */
2028 if (res != 0)
2029 {
2030 mpu6500_interface_debug_print("mpu6500: set interrupt latch failed.\n");
2031 (void)mpu6500_deinit(&gs_handle);
2032
2033 return 1;
2034 }
2035 mpu6500_interface_debug_print("mpu6500: enable interrupt latch.\n");
2036 res = mpu6500_get_interrupt_latch(&gs_handle, &enable);
2037 if (res != 0)
2038 {
2039 mpu6500_interface_debug_print("mpu6500: get interrupt latch failed.\n");
2040 (void)mpu6500_deinit(&gs_handle);
2041
2042 return 1;
2043 }
2044 mpu6500_interface_debug_print("mpu6500: check interrupt latch %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2045
2046 /* disable latch */
2048 if (res != 0)
2049 {
2050 mpu6500_interface_debug_print("mpu6500: set interrupt latch failed.\n");
2051 (void)mpu6500_deinit(&gs_handle);
2052
2053 return 1;
2054 }
2055 mpu6500_interface_debug_print("mpu6500: disable interrupt latch.\n");
2056 res = mpu6500_get_interrupt_latch(&gs_handle, &enable);
2057 if (res != 0)
2058 {
2059 mpu6500_interface_debug_print("mpu6500: get interrupt latch failed.\n");
2060 (void)mpu6500_deinit(&gs_handle);
2061
2062 return 1;
2063 }
2064 mpu6500_interface_debug_print("mpu6500: check interrupt latch %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2065
2066 /* mpu6500_set_interrupt_read_clear/mpu6500_get_interrupt_read_clear test */
2067 mpu6500_interface_debug_print("mpu6500: mpu6500_set_interrupt_read_clear/mpu6500_get_interrupt_read_clear test.\n");
2068
2069 /* enable interrupt read clear */
2071 if (res != 0)
2072 {
2073 mpu6500_interface_debug_print("mpu6500: set interrupt read clear failed.\n");
2074 (void)mpu6500_deinit(&gs_handle);
2075
2076 return 1;
2077 }
2078 mpu6500_interface_debug_print("mpu6500: enable interrupt read clear.\n");
2079 res = mpu6500_get_interrupt_read_clear(&gs_handle, &enable);
2080 if (res != 0)
2081 {
2082 mpu6500_interface_debug_print("mpu6500: get interrupt read clear failed.\n");
2083 (void)mpu6500_deinit(&gs_handle);
2084
2085 return 1;
2086 }
2087 mpu6500_interface_debug_print("mpu6500: check interrupt read clear %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2088
2089 /* disable interrupt read clear */
2091 if (res != 0)
2092 {
2093 mpu6500_interface_debug_print("mpu6500: set interrupt read clear failed.\n");
2094 (void)mpu6500_deinit(&gs_handle);
2095
2096 return 1;
2097 }
2098 mpu6500_interface_debug_print("mpu6500: disable interrupt read clear.\n");
2099 res = mpu6500_get_interrupt_read_clear(&gs_handle, &enable);
2100 if (res != 0)
2101 {
2102 mpu6500_interface_debug_print("mpu6500: get interrupt read clear failed.\n");
2103 (void)mpu6500_deinit(&gs_handle);
2104
2105 return 1;
2106 }
2107 mpu6500_interface_debug_print("mpu6500: check interrupt read clear %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2108
2109 /* mpu6500_set_fsync_interrupt_level/mpu6500_get_fsync_interrupt_level test */
2110 mpu6500_interface_debug_print("mpu6500: mpu6500_set_fsync_interrupt_level/mpu6500_get_fsync_interrupt_level test.\n");
2111
2112 /* set fsync interrupt level high */
2114 if (res != 0)
2115 {
2116 mpu6500_interface_debug_print("mpu6500: set fsync interrupt level failed.\n");
2117 (void)mpu6500_deinit(&gs_handle);
2118
2119 return 1;
2120 }
2121 mpu6500_interface_debug_print("mpu6500: set fsync interrupt level high.\n");
2122 res = mpu6500_get_fsync_interrupt_level(&gs_handle, &level);
2123 if (res != 0)
2124 {
2125 mpu6500_interface_debug_print("mpu6500: get fsync interrupt level failed.\n");
2126 (void)mpu6500_deinit(&gs_handle);
2127
2128 return 1;
2129 }
2130 mpu6500_interface_debug_print("mpu6500: check fsync interrupt level %s.\n", level == MPU6500_PIN_LEVEL_HIGH ? "ok" : "error");
2131
2132 /* set fsync interrupt level low */
2134 if (res != 0)
2135 {
2136 mpu6500_interface_debug_print("mpu6500: set fsync interrupt level failed.\n");
2137 (void)mpu6500_deinit(&gs_handle);
2138
2139 return 1;
2140 }
2141 mpu6500_interface_debug_print("mpu6500: set fsync interrupt level low.\n");
2142 res = mpu6500_get_fsync_interrupt_level(&gs_handle, &level);
2143 if (res != 0)
2144 {
2145 mpu6500_interface_debug_print("mpu6500: get fsync interrupt level failed.\n");
2146 (void)mpu6500_deinit(&gs_handle);
2147
2148 return 1;
2149 }
2150 mpu6500_interface_debug_print("mpu6500: check fsync interrupt level %s.\n", level == MPU6500_PIN_LEVEL_LOW ? "ok" : "error");
2151
2152 /* mpu6500_set_fsync_interrupt/mpu6500_get_fsync_interrupt test */
2153 mpu6500_interface_debug_print("mpu6500: mpu6500_set_fsync_interrupt/mpu6500_get_fsync_interrupt test.\n");
2154
2155 /* enable fsync interrupt */
2157 if (res != 0)
2158 {
2159 mpu6500_interface_debug_print("mpu6500: set fsync interrupt failed.\n");
2160 (void)mpu6500_deinit(&gs_handle);
2161
2162 return 1;
2163 }
2164 mpu6500_interface_debug_print("mpu6500: enable fsync interrupt.\n");
2165 res = mpu6500_get_fsync_interrupt(&gs_handle, &enable);
2166 if (res != 0)
2167 {
2168 mpu6500_interface_debug_print("mpu6500: get fsync interrupt failed.\n");
2169 (void)mpu6500_deinit(&gs_handle);
2170
2171 return 1;
2172 }
2173 mpu6500_interface_debug_print("mpu6500: check fsync interrupt %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2174
2175 /* disable fsync interrupt */
2177 if (res != 0)
2178 {
2179 mpu6500_interface_debug_print("mpu6500: set fsync interrupt failed.\n");
2180 (void)mpu6500_deinit(&gs_handle);
2181
2182 return 1;
2183 }
2184 mpu6500_interface_debug_print("mpu6500: disable fsync interrupt.\n");
2185 res = mpu6500_get_fsync_interrupt(&gs_handle, &enable);
2186 if (res != 0)
2187 {
2188 mpu6500_interface_debug_print("mpu6500: get fsync interrupt failed.\n");
2189 (void)mpu6500_deinit(&gs_handle);
2190
2191 return 1;
2192 }
2193 mpu6500_interface_debug_print("mpu6500: check fsync interrupt %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2194
2195 /* mpu6500_set_iic_bypass/mpu6500_get_iic_bypass test */
2196 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_bypass/mpu6500_get_iic_bypass test.\n");
2197
2198 /* enable iic bypass */
2199 res = mpu6500_set_iic_bypass(&gs_handle, MPU6500_BOOL_TRUE);
2200 if (res != 0)
2201 {
2202 mpu6500_interface_debug_print("mpu6500: set iic bypass failed.\n");
2203 (void)mpu6500_deinit(&gs_handle);
2204
2205 return 1;
2206 }
2207 mpu6500_interface_debug_print("mpu6500: enable iic bypass.\n");
2208 res = mpu6500_get_iic_bypass(&gs_handle, &enable);
2209 if (res != 0)
2210 {
2211 mpu6500_interface_debug_print("mpu6500: get iic bypass failed.\n");
2212 (void)mpu6500_deinit(&gs_handle);
2213
2214 return 1;
2215 }
2216 mpu6500_interface_debug_print("mpu6500: check iic bypass %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2217
2218 /* disable iic bypass */
2219 res = mpu6500_set_iic_bypass(&gs_handle, MPU6500_BOOL_FALSE);
2220 if (res != 0)
2221 {
2222 mpu6500_interface_debug_print("mpu6500: set iic bypass failed.\n");
2223 (void)mpu6500_deinit(&gs_handle);
2224
2225 return 1;
2226 }
2227 mpu6500_interface_debug_print("mpu6500: disable iic bypass.\n");
2228 res = mpu6500_get_iic_bypass(&gs_handle, &enable);
2229 if (res != 0)
2230 {
2231 mpu6500_interface_debug_print("mpu6500: get iic bypass failed.\n");
2232 (void)mpu6500_deinit(&gs_handle);
2233
2234 return 1;
2235 }
2236 mpu6500_interface_debug_print("mpu6500: check iic bypass %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2237
2238 /* mpu6500_set_interrupt/mpu6500_get_interrupt test */
2239 mpu6500_interface_debug_print("mpu6500: mpu6500_set_interrupt/mpu6500_get_interrupt test.\n");
2240
2241 /* enable motion interrupt */
2243 if (res != 0)
2244 {
2245 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2246 (void)mpu6500_deinit(&gs_handle);
2247
2248 return 1;
2249 }
2250 mpu6500_interface_debug_print("mpu6500: enable motion interrupt.\n");
2251 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_MOTION, &enable);
2252 if (res != 0)
2253 {
2254 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2255 (void)mpu6500_deinit(&gs_handle);
2256
2257 return 1;
2258 }
2259 mpu6500_interface_debug_print("mpu6500: check motion interrupt %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2260
2261 /* disable motion interrupt */
2263 if (res != 0)
2264 {
2265 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2266 (void)mpu6500_deinit(&gs_handle);
2267
2268 return 1;
2269 }
2270 mpu6500_interface_debug_print("mpu6500: disable motion interrupt.\n");
2271 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_MOTION, &enable);
2272 if (res != 0)
2273 {
2274 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2275 (void)mpu6500_deinit(&gs_handle);
2276
2277 return 1;
2278 }
2279 mpu6500_interface_debug_print("mpu6500: check motion interrupt %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2280
2281 /* enable fifo overflow interrupt */
2283 if (res != 0)
2284 {
2285 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2286 (void)mpu6500_deinit(&gs_handle);
2287
2288 return 1;
2289 }
2290 mpu6500_interface_debug_print("mpu6500: enable fifo overflow interrupt.\n");
2291 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_FIFO_OVERFLOW, &enable);
2292 if (res != 0)
2293 {
2294 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2295 (void)mpu6500_deinit(&gs_handle);
2296
2297 return 1;
2298 }
2299 mpu6500_interface_debug_print("mpu6500: check fifo overflow interrupt %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2300
2301 /* disable fifo overflow interrupt */
2303 if (res != 0)
2304 {
2305 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2306 (void)mpu6500_deinit(&gs_handle);
2307
2308 return 1;
2309 }
2310 mpu6500_interface_debug_print("mpu6500: disable fifo overflow interrupt.\n");
2311 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_FIFO_OVERFLOW, &enable);
2312 if (res != 0)
2313 {
2314 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2315 (void)mpu6500_deinit(&gs_handle);
2316
2317 return 1;
2318 }
2319 mpu6500_interface_debug_print("mpu6500: check fifo overflow interrupt %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2320
2321 /* enable dmp interrupt */
2323 if (res != 0)
2324 {
2325 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2326 (void)mpu6500_deinit(&gs_handle);
2327
2328 return 1;
2329 }
2330 mpu6500_interface_debug_print("mpu6500: enable dmp interrupt.\n");
2331 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_DMP, &enable);
2332 if (res != 0)
2333 {
2334 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2335 (void)mpu6500_deinit(&gs_handle);
2336
2337 return 1;
2338 }
2339 mpu6500_interface_debug_print("mpu6500: check dmp interrupt %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2340
2341 /* disable dmp interrupt */
2343 if (res != 0)
2344 {
2345 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2346 (void)mpu6500_deinit(&gs_handle);
2347
2348 return 1;
2349 }
2350 mpu6500_interface_debug_print("mpu6500: disable dmp interrupt.\n");
2351 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_DMP, &enable);
2352 if (res != 0)
2353 {
2354 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2355 (void)mpu6500_deinit(&gs_handle);
2356
2357 return 1;
2358 }
2359 mpu6500_interface_debug_print("mpu6500: check dmp interrupt %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2360
2361 /* enable fsync init interrupt */
2363 if (res != 0)
2364 {
2365 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2366 (void)mpu6500_deinit(&gs_handle);
2367
2368 return 1;
2369 }
2370 mpu6500_interface_debug_print("mpu6500: enable fsync init interrupt.\n");
2371 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_FSYNC_INT, &enable);
2372 if (res != 0)
2373 {
2374 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2375 (void)mpu6500_deinit(&gs_handle);
2376
2377 return 1;
2378 }
2379 mpu6500_interface_debug_print("mpu6500: check fsync init interrupt %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2380
2381 /* disable fsync init interrupt */
2383 if (res != 0)
2384 {
2385 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2386 (void)mpu6500_deinit(&gs_handle);
2387
2388 return 1;
2389 }
2390 mpu6500_interface_debug_print("mpu6500: disable fsync init interrupt.\n");
2391 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_FSYNC_INT, &enable);
2392 if (res != 0)
2393 {
2394 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2395 (void)mpu6500_deinit(&gs_handle);
2396
2397 return 1;
2398 }
2399 mpu6500_interface_debug_print("mpu6500: check fsync init interrupt %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2400
2401 /* enable data ready interrupt */
2403 if (res != 0)
2404 {
2405 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2406 (void)mpu6500_deinit(&gs_handle);
2407
2408 return 1;
2409 }
2410 mpu6500_interface_debug_print("mpu6500: enable data ready interrupt.\n");
2411 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_DATA_READY, &enable);
2412 if (res != 0)
2413 {
2414 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2415 (void)mpu6500_deinit(&gs_handle);
2416
2417 return 1;
2418 }
2419 mpu6500_interface_debug_print("mpu6500: check data ready interrupt %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2420
2421 /* disable data ready interrupt */
2423 if (res != 0)
2424 {
2425 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
2426 (void)mpu6500_deinit(&gs_handle);
2427
2428 return 1;
2429 }
2430 mpu6500_interface_debug_print("mpu6500: disable data ready interrupt.\n");
2431 res = mpu6500_get_interrupt(&gs_handle, MPU6500_INTERRUPT_DATA_READY, &enable);
2432 if (res != 0)
2433 {
2434 mpu6500_interface_debug_print("mpu6500: get interrupt failed.\n");
2435 (void)mpu6500_deinit(&gs_handle);
2436
2437 return 1;
2438 }
2439 mpu6500_interface_debug_print("mpu6500: check data ready interrupt %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
2440
2441 /* mpu6500_get_interrupt_status test */
2442 mpu6500_interface_debug_print("mpu6500: mpu6500_get_interrupt_status test.\n");
2443
2444 /* get interrupt status */
2445 res = mpu6500_get_interrupt_status(&gs_handle, &status);
2446 if (res != 0)
2447 {
2448 mpu6500_interface_debug_print("mpu6500: get interrupt status failed.\n");
2449 (void)mpu6500_deinit(&gs_handle);
2450
2451 return 1;
2452 }
2453 mpu6500_interface_debug_print("mpu6500: get interrupt status 0x%02x.\n", status);
2454
2455 /* mpu6500_set_gyroscope_x_test/mpu6500_get_gyroscope_x_test test */
2456 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyroscope_x_test/mpu6500_get_gyroscope_x_test test.\n");
2457
2458 test = rand() % 0x20;
2459 res = mpu6500_set_gyroscope_x_test(&gs_handle, test);
2460 if (res != 0)
2461 {
2462 mpu6500_interface_debug_print("mpu6500: set gyroscope x test failed.\n");
2463 (void)mpu6500_deinit(&gs_handle);
2464
2465 return 1;
2466 }
2467 mpu6500_interface_debug_print("mpu6500: set gyroscope x test 0x%02X.\n", test);
2468 res = mpu6500_get_gyroscope_x_test(&gs_handle, &test_check);
2469 if (res != 0)
2470 {
2471 mpu6500_interface_debug_print("mpu6500: get gyroscope x test failed.\n");
2472 (void)mpu6500_deinit(&gs_handle);
2473
2474 return 1;
2475 }
2476 mpu6500_interface_debug_print("mpu6500: check gyroscope x test %s.\n", test == test_check ? "ok" : "error");
2477
2478 /* mpu6500_set_gyroscope_y_test/mpu6500_get_gyroscope_y_test test */
2479 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyroscope_y_test/mpu6500_get_gyroscope_y_test test.\n");
2480
2481 test = rand() % 0x20;
2482 res = mpu6500_set_gyroscope_y_test(&gs_handle, test);
2483 if (res != 0)
2484 {
2485 mpu6500_interface_debug_print("mpu6500: set gyroscope y test failed.\n");
2486 (void)mpu6500_deinit(&gs_handle);
2487
2488 return 1;
2489 }
2490 mpu6500_interface_debug_print("mpu6500: set gyroscope y test 0x%02X.\n", test);
2491 res = mpu6500_get_gyroscope_y_test(&gs_handle, &test_check);
2492 if (res != 0)
2493 {
2494 mpu6500_interface_debug_print("mpu6500: get gyroscope y test failed.\n");
2495 (void)mpu6500_deinit(&gs_handle);
2496
2497 return 1;
2498 }
2499 mpu6500_interface_debug_print("mpu6500: check gyroscope y test %s.\n", test == test_check ? "ok" : "error");
2500
2501 /* mpu6500_set_gyroscope_z_test/mpu6500_get_gyroscope_z_test test */
2502 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyroscope_z_test/mpu6500_get_gyroscope_z_test test.\n");
2503
2504 test = rand() % 0x20;
2505 res = mpu6500_set_gyroscope_z_test(&gs_handle, test);
2506 if (res != 0)
2507 {
2508 mpu6500_interface_debug_print("mpu6500: set gyroscope z test failed.\n");
2509 (void)mpu6500_deinit(&gs_handle);
2510
2511 return 1;
2512 }
2513 mpu6500_interface_debug_print("mpu6500: set gyroscope z test 0x%02X.\n", test);
2514 res = mpu6500_get_gyroscope_z_test(&gs_handle, &test_check);
2515 if (res != 0)
2516 {
2517 mpu6500_interface_debug_print("mpu6500: get gyroscope z test failed.\n");
2518 (void)mpu6500_deinit(&gs_handle);
2519
2520 return 1;
2521 }
2522 mpu6500_interface_debug_print("mpu6500: check gyroscope z test %s.\n", test == test_check ? "ok" : "error");
2523
2524 /* mpu6500_set_accelerometer_x_test/mpu6500_get_accelerometer_x_test test */
2525 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_x_test/mpu6500_get_accelerometer_x_test test.\n");
2526
2527 test = rand() % 0x20;
2528 res = mpu6500_set_accelerometer_x_test(&gs_handle, test);
2529 if (res != 0)
2530 {
2531 mpu6500_interface_debug_print("mpu6500: set accelerometer x test failed.\n");
2532 (void)mpu6500_deinit(&gs_handle);
2533
2534 return 1;
2535 }
2536 mpu6500_interface_debug_print("mpu6500: set accelerometer x test 0x%02X.\n", test);
2537 res = mpu6500_get_accelerometer_x_test(&gs_handle, &test_check);
2538 if (res != 0)
2539 {
2540 mpu6500_interface_debug_print("mpu6500: get accelerometer x test failed.\n");
2541 (void)mpu6500_deinit(&gs_handle);
2542
2543 return 1;
2544 }
2545 mpu6500_interface_debug_print("mpu6500: check accelerometer x test %s.\n", test == test_check ? "ok" : "error");
2546
2547 /* mpu6500_set_accelerometer_y_test/mpu6500_get_accelerometer_y_test test */
2548 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_y_test/mpu6500_get_accelerometer_y_test test.\n");
2549
2550 test = rand() % 0x20;
2551 res = mpu6500_set_accelerometer_y_test(&gs_handle, test);
2552 if (res != 0)
2553 {
2554 mpu6500_interface_debug_print("mpu6500: set accelerometer y test failed.\n");
2555 (void)mpu6500_deinit(&gs_handle);
2556
2557 return 1;
2558 }
2559 mpu6500_interface_debug_print("mpu6500: set accelerometer y test 0x%02X.\n", test);
2560 res = mpu6500_get_accelerometer_y_test(&gs_handle, &test_check);
2561 if (res != 0)
2562 {
2563 mpu6500_interface_debug_print("mpu6500: get accelerometer y test failed.\n");
2564 (void)mpu6500_deinit(&gs_handle);
2565
2566 return 1;
2567 }
2568 mpu6500_interface_debug_print("mpu6500: check accelerometer y test %s.\n", test == test_check ? "ok" : "error");
2569
2570 /* mpu6500_set_accelerometer_z_test/mpu6500_get_accelerometer_z_test test */
2571 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_z_test/mpu6500_get_accelerometer_z_test test.\n");
2572
2573 test = rand() % 0x20;
2574 res = mpu6500_set_accelerometer_z_test(&gs_handle, test);
2575 if (res != 0)
2576 {
2577 mpu6500_interface_debug_print("mpu6500: set accelerometer z test failed.\n");
2578 (void)mpu6500_deinit(&gs_handle);
2579
2580 return 1;
2581 }
2582 mpu6500_interface_debug_print("mpu6500: set accelerometer z test 0x%02X.\n", test);
2583 res = mpu6500_get_accelerometer_z_test(&gs_handle, &test_check);
2584 if (res != 0)
2585 {
2586 mpu6500_interface_debug_print("mpu6500: get accelerometer z test failed.\n");
2587 (void)mpu6500_deinit(&gs_handle);
2588
2589 return 1;
2590 }
2591 mpu6500_interface_debug_print("mpu6500: check accelerometer z test %s.\n", test == test_check ? "ok" : "error");
2592
2593 /* mpu6500_set_motion_threshold/mpu6500_get_motion_threshold test */
2594 mpu6500_interface_debug_print("mpu6500: mpu6500_set_motion_threshold/mpu6500_get_motion_threshold test.\n");
2595
2596 test = rand() % 256;
2597 res = mpu6500_set_motion_threshold(&gs_handle, test);
2598 if (res != 0)
2599 {
2600 mpu6500_interface_debug_print("mpu6500: set motion threshold failed.\n");
2601 (void)mpu6500_deinit(&gs_handle);
2602
2603 return 1;
2604 }
2605 mpu6500_interface_debug_print("mpu6500: set motion threshold 0x%02X.\n", test);
2606 res = mpu6500_get_motion_threshold(&gs_handle, &test_check);
2607 if (res != 0)
2608 {
2609 mpu6500_interface_debug_print("mpu6500: get motion threshold failed.\n");
2610 (void)mpu6500_deinit(&gs_handle);
2611
2612 return 1;
2613 }
2614 mpu6500_interface_debug_print("mpu6500: check motion threshold %s.\n", test == test_check ? "ok" : "error");
2615
2616 /* mpu6500_motion_threshold_convert_to_register/mpu6500_motion_threshold_convert_to_data test */
2617 mpu6500_interface_debug_print("mpu6500: mpu6500_motion_threshold_convert_to_register/mpu6500_motion_threshold_convert_to_data test.\n");
2618
2619 test_f = (rand() % 10000) / 10.0f + 32.0f;
2620 res = mpu6500_motion_threshold_convert_to_register(&gs_handle, test_f, &reg);
2621 if (res != 0)
2622 {
2623 mpu6500_interface_debug_print("mpu6500: motion threshold convert to register failed.\n");
2624 (void)mpu6500_deinit(&gs_handle);
2625
2626 return 1;
2627 }
2628 mpu6500_interface_debug_print("mpu6500: motion threshold convert to register %0.2f.\n", test_f);
2629 res = mpu6500_motion_threshold_convert_to_data(&gs_handle, reg, &test_check_f);
2630 if (res != 0)
2631 {
2632 mpu6500_interface_debug_print("mpu6500: motion threshold convert to data failed.\n");
2633 (void)mpu6500_deinit(&gs_handle);
2634
2635 return 1;
2636 }
2637 mpu6500_interface_debug_print("mpu6500: check motion threshold %0.2f.\n", test_check_f);
2638
2639 /* mpu6500_set_iic_clock/mpu6500_get_iic_clock test */
2640 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_clock/mpu6500_get_iic_clock test.\n");
2641
2642 /* 348 kHz */
2644 if (res != 0)
2645 {
2646 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2647 (void)mpu6500_deinit(&gs_handle);
2648
2649 return 1;
2650 }
2651 mpu6500_interface_debug_print("mpu6500: set iic clock 348 kHz.\n");
2652 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2653 if (res != 0)
2654 {
2655 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2656 (void)mpu6500_deinit(&gs_handle);
2657
2658 return 1;
2659 }
2660 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_348_KHZ ? "ok" : "error");
2661
2662 /* 333 kHz */
2664 if (res != 0)
2665 {
2666 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2667 (void)mpu6500_deinit(&gs_handle);
2668
2669 return 1;
2670 }
2671 mpu6500_interface_debug_print("mpu6500: set iic clock 333 kHz.\n");
2672 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2673 if (res != 0)
2674 {
2675 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2676 (void)mpu6500_deinit(&gs_handle);
2677
2678 return 1;
2679 }
2680 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_333_KHZ ? "ok" : "error");
2681
2682 /* 320 kHz */
2684 if (res != 0)
2685 {
2686 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2687 (void)mpu6500_deinit(&gs_handle);
2688
2689 return 1;
2690 }
2691 mpu6500_interface_debug_print("mpu6500: set iic clock 320 kHz.\n");
2692 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2693 if (res != 0)
2694 {
2695 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2696 (void)mpu6500_deinit(&gs_handle);
2697
2698 return 1;
2699 }
2700 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_320_KHZ ? "ok" : "error");
2701
2702 /* 308 kHz */
2704 if (res != 0)
2705 {
2706 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2707 (void)mpu6500_deinit(&gs_handle);
2708
2709 return 1;
2710 }
2711 mpu6500_interface_debug_print("mpu6500: set iic clock 308 kHz.\n");
2712 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2713 if (res != 0)
2714 {
2715 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2716 (void)mpu6500_deinit(&gs_handle);
2717
2718 return 1;
2719 }
2720 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_308_KHZ ? "ok" : "error");
2721
2722 /* 296 kHz */
2724 if (res != 0)
2725 {
2726 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2727 (void)mpu6500_deinit(&gs_handle);
2728
2729 return 1;
2730 }
2731 mpu6500_interface_debug_print("mpu6500: set iic clock 296 kHz.\n");
2732 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2733 if (res != 0)
2734 {
2735 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2736 (void)mpu6500_deinit(&gs_handle);
2737
2738 return 1;
2739 }
2740 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_296_KHZ ? "ok" : "error");
2741
2742 /* 286 kHz */
2744 if (res != 0)
2745 {
2746 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2747 (void)mpu6500_deinit(&gs_handle);
2748
2749 return 1;
2750 }
2751 mpu6500_interface_debug_print("mpu6500: set iic clock 286 kHz.\n");
2752 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2753 if (res != 0)
2754 {
2755 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2756 (void)mpu6500_deinit(&gs_handle);
2757
2758 return 1;
2759 }
2760 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_286_KHZ ? "ok" : "error");
2761
2762 /* 276 kHz */
2764 if (res != 0)
2765 {
2766 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2767 (void)mpu6500_deinit(&gs_handle);
2768
2769 return 1;
2770 }
2771 mpu6500_interface_debug_print("mpu6500: set iic clock 276 kHz.\n");
2772 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2773 if (res != 0)
2774 {
2775 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2776 (void)mpu6500_deinit(&gs_handle);
2777
2778 return 1;
2779 }
2780 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_276_KHZ ? "ok" : "error");
2781
2782 /* 267 kHz */
2784 if (res != 0)
2785 {
2786 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2787 (void)mpu6500_deinit(&gs_handle);
2788
2789 return 1;
2790 }
2791 mpu6500_interface_debug_print("mpu6500: set iic clock 267 kHz.\n");
2792 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2793 if (res != 0)
2794 {
2795 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2796 (void)mpu6500_deinit(&gs_handle);
2797
2798 return 1;
2799 }
2800 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_267_KHZ ? "ok" : "error");
2801
2802 /* 258 kHz */
2804 if (res != 0)
2805 {
2806 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2807 (void)mpu6500_deinit(&gs_handle);
2808
2809 return 1;
2810 }
2811 mpu6500_interface_debug_print("mpu6500: set iic clock 258 kHz.\n");
2812 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2813 if (res != 0)
2814 {
2815 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2816 (void)mpu6500_deinit(&gs_handle);
2817
2818 return 1;
2819 }
2820 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_258_KHZ ? "ok" : "error");
2821
2822 /* 500 kHz */
2824 if (res != 0)
2825 {
2826 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2827 (void)mpu6500_deinit(&gs_handle);
2828
2829 return 1;
2830 }
2831 mpu6500_interface_debug_print("mpu6500: set iic clock 500 kHz.\n");
2832 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2833 if (res != 0)
2834 {
2835 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2836 (void)mpu6500_deinit(&gs_handle);
2837
2838 return 1;
2839 }
2840 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_500_KHZ ? "ok" : "error");
2841
2842 /* 471 kHz */
2844 if (res != 0)
2845 {
2846 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2847 (void)mpu6500_deinit(&gs_handle);
2848
2849 return 1;
2850 }
2851 mpu6500_interface_debug_print("mpu6500: set iic clock 471 kHz.\n");
2852 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2853 if (res != 0)
2854 {
2855 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2856 (void)mpu6500_deinit(&gs_handle);
2857
2858 return 1;
2859 }
2860 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_471_KHZ ? "ok" : "error");
2861
2862 /* 444 kHz */
2864 if (res != 0)
2865 {
2866 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2867 (void)mpu6500_deinit(&gs_handle);
2868
2869 return 1;
2870 }
2871 mpu6500_interface_debug_print("mpu6500: set iic clock 444 kHz.\n");
2872 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2873 if (res != 0)
2874 {
2875 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2876 (void)mpu6500_deinit(&gs_handle);
2877
2878 return 1;
2879 }
2880 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_444_KHZ ? "ok" : "error");
2881
2882 /* 421 kHz */
2884 if (res != 0)
2885 {
2886 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2887 (void)mpu6500_deinit(&gs_handle);
2888
2889 return 1;
2890 }
2891 mpu6500_interface_debug_print("mpu6500: set iic clock 421 kHz.\n");
2892 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2893 if (res != 0)
2894 {
2895 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2896 (void)mpu6500_deinit(&gs_handle);
2897
2898 return 1;
2899 }
2900 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_421_KHZ ? "ok" : "error");
2901
2902 /* 400 kHz */
2904 if (res != 0)
2905 {
2906 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2907 (void)mpu6500_deinit(&gs_handle);
2908
2909 return 1;
2910 }
2911 mpu6500_interface_debug_print("mpu6500: set iic clock 400 kHz.\n");
2912 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2913 if (res != 0)
2914 {
2915 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2916 (void)mpu6500_deinit(&gs_handle);
2917
2918 return 1;
2919 }
2920 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_400_KHZ ? "ok" : "error");
2921
2922 /* 381 kHz */
2924 if (res != 0)
2925 {
2926 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2927 (void)mpu6500_deinit(&gs_handle);
2928
2929 return 1;
2930 }
2931 mpu6500_interface_debug_print("mpu6500: set iic clock 381 kHz.\n");
2932 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2933 if (res != 0)
2934 {
2935 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2936 (void)mpu6500_deinit(&gs_handle);
2937
2938 return 1;
2939 }
2940 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_381_KHZ ? "ok" : "error");
2941
2942 /* 364 kHz */
2944 if (res != 0)
2945 {
2946 mpu6500_interface_debug_print("mpu6500: set iic clock failed.\n");
2947 (void)mpu6500_deinit(&gs_handle);
2948
2949 return 1;
2950 }
2951 mpu6500_interface_debug_print("mpu6500: set iic clock 364 kHz.\n");
2952 res = mpu6500_get_iic_clock(&gs_handle, &clk);
2953 if (res != 0)
2954 {
2955 mpu6500_interface_debug_print("mpu6500: get iic clock failed.\n");
2956 (void)mpu6500_deinit(&gs_handle);
2957
2958 return 1;
2959 }
2960 mpu6500_interface_debug_print("mpu6500: check iic clock %s.\n", clk == MPU6500_IIC_CLOCK_364_KHZ ? "ok" : "error");
2961
2962 /* mpu6500_set_iic_multi_master/mpu6500_get_iic_multi_master test */
2963 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_multi_master/mpu6500_get_iic_multi_master test.\n");
2964
2965 /* enable multi master */
2967 if (res != 0)
2968 {
2969 mpu6500_interface_debug_print("mpu6500: set iic multi master failed.\n");
2970 (void)mpu6500_deinit(&gs_handle);
2971
2972 return 1;
2973 }
2974 mpu6500_interface_debug_print("mpu6500: enable iic multi master.\n");
2975 res = mpu6500_get_iic_multi_master(&gs_handle, &enable);
2976 if (res != 0)
2977 {
2978 mpu6500_interface_debug_print("mpu6500: get iic multi master failed.\n");
2979 (void)mpu6500_deinit(&gs_handle);
2980
2981 return 1;
2982 }
2983 mpu6500_interface_debug_print("mpu6500: check iic multi master %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
2984
2985 /* disable multi master */
2987 if (res != 0)
2988 {
2989 mpu6500_interface_debug_print("mpu6500: set iic multi master failed.\n");
2990 (void)mpu6500_deinit(&gs_handle);
2991
2992 return 1;
2993 }
2994 mpu6500_interface_debug_print("mpu6500: disable iic multi master.\n");
2995 res = mpu6500_get_iic_multi_master(&gs_handle, &enable);
2996 if (res != 0)
2997 {
2998 mpu6500_interface_debug_print("mpu6500: get iic multi master failed.\n");
2999 (void)mpu6500_deinit(&gs_handle);
3000
3001 return 1;
3002 }
3003 mpu6500_interface_debug_print("mpu6500: check iic multi master %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3004
3005 /* mpu6500_set_iic_wait_for_external_sensor/mpu6500_get_iic_wait_for_external_sensor test */
3006 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_wait_for_external_sensor/mpu6500_get_iic_wait_for_external_sensor test.\n");
3007
3008 /* enable iic wait for external sensor */
3010 if (res != 0)
3011 {
3012 mpu6500_interface_debug_print("mpu6500: set iic wait for external sensor failed.\n");
3013 (void)mpu6500_deinit(&gs_handle);
3014
3015 return 1;
3016 }
3017 mpu6500_interface_debug_print("mpu6500: enable iic wait for external sensor.\n");
3018 res = mpu6500_get_iic_wait_for_external_sensor(&gs_handle, &enable);
3019 if (res != 0)
3020 {
3021 mpu6500_interface_debug_print("mpu6500: get iic wait for external sensor failed.\n");
3022 (void)mpu6500_deinit(&gs_handle);
3023
3024 return 1;
3025 }
3026 mpu6500_interface_debug_print("mpu6500: check iic wait for external sensor %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3027
3028 /* disable iic wait for external sensor */
3030 if (res != 0)
3031 {
3032 mpu6500_interface_debug_print("mpu6500: set iic wait for external sensor failed.\n");
3033 (void)mpu6500_deinit(&gs_handle);
3034
3035 return 1;
3036 }
3037 mpu6500_interface_debug_print("mpu6500: disable iic wait for external sensor.\n");
3038 res = mpu6500_get_iic_wait_for_external_sensor(&gs_handle, &enable);
3039 if (res != 0)
3040 {
3041 mpu6500_interface_debug_print("mpu6500: get iic wait for external sensor failed.\n");
3042 (void)mpu6500_deinit(&gs_handle);
3043
3044 return 1;
3045 }
3046 mpu6500_interface_debug_print("mpu6500: check iic wait for external sensor %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3047
3048 /* mpu6500_set_iic_read_mode/mpu6500_get_iic_read_mode test */
3049 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_read_mode/mpu6500_get_iic_read_mode test.\n");
3050
3051 /* restart read mode */
3053 if (res != 0)
3054 {
3055 mpu6500_interface_debug_print("mpu6500: set iic read mode failed.\n");
3056 (void)mpu6500_deinit(&gs_handle);
3057
3058 return 1;
3059 }
3060 mpu6500_interface_debug_print("mpu6500: set restart read mode.\n");
3061 res = mpu6500_get_iic_read_mode(&gs_handle, &read_mode);
3062 if (res != 0)
3063 {
3064 mpu6500_interface_debug_print("mpu6500: get iic read mode failed.\n");
3065 (void)mpu6500_deinit(&gs_handle);
3066
3067 return 1;
3068 }
3069 mpu6500_interface_debug_print("mpu6500: check iic read mode %s.\n", read_mode == MPU6500_IIC_READ_MODE_RESTART ? "ok" : "error");
3070
3071 /* stop and start read mode */
3073 if (res != 0)
3074 {
3075 mpu6500_interface_debug_print("mpu6500: set iic read mode failed.\n");
3076 (void)mpu6500_deinit(&gs_handle);
3077
3078 return 1;
3079 }
3080 mpu6500_interface_debug_print("mpu6500: set stop and start read mode.\n");
3081 res = mpu6500_get_iic_read_mode(&gs_handle, &read_mode);
3082 if (res != 0)
3083 {
3084 mpu6500_interface_debug_print("mpu6500: get iic read mode failed.\n");
3085 (void)mpu6500_deinit(&gs_handle);
3086
3087 return 1;
3088 }
3089 mpu6500_interface_debug_print("mpu6500: check iic read mode %s.\n", read_mode == MPU6500_IIC_READ_MODE_STOP_AND_START ? "ok" : "error");
3090
3091 /* mpu6500_set_iic_fifo_enable/mpu6500_get_iic_fifo_enable test */
3092 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_fifo_enable/mpu6500_get_iic_fifo_enable test.\n");
3093
3094 /* enable iic fifo slave0 */
3096 if (res != 0)
3097 {
3098 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3099 (void)mpu6500_deinit(&gs_handle);
3100
3101 return 1;
3102 }
3103 mpu6500_interface_debug_print("mpu6500: enable iic fifo slave0.\n");
3104 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_0, &enable);
3105 if (res != 0)
3106 {
3107 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3108 (void)mpu6500_deinit(&gs_handle);
3109
3110 return 1;
3111 }
3112 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3113
3114 /* disable iic fifo slave0 */
3116 if (res != 0)
3117 {
3118 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3119 (void)mpu6500_deinit(&gs_handle);
3120
3121 return 1;
3122 }
3123 mpu6500_interface_debug_print("mpu6500: disable iic fifo slave0.\n");
3124 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_0, &enable);
3125 if (res != 0)
3126 {
3127 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3128 (void)mpu6500_deinit(&gs_handle);
3129
3130 return 1;
3131 }
3132 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3133
3134 /* enable iic fifo slave1 */
3136 if (res != 0)
3137 {
3138 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3139 (void)mpu6500_deinit(&gs_handle);
3140
3141 return 1;
3142 }
3143 mpu6500_interface_debug_print("mpu6500: enable iic fifo slave1.\n");
3144 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_1, &enable);
3145 if (res != 0)
3146 {
3147 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3148 (void)mpu6500_deinit(&gs_handle);
3149
3150 return 1;
3151 }
3152 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3153
3154 /* disable iic fifo slave1 */
3156 if (res != 0)
3157 {
3158 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3159 (void)mpu6500_deinit(&gs_handle);
3160
3161 return 1;
3162 }
3163 mpu6500_interface_debug_print("mpu6500: disable iic fifo slave1.\n");
3164 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_1, &enable);
3165 if (res != 0)
3166 {
3167 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3168 (void)mpu6500_deinit(&gs_handle);
3169
3170 return 1;
3171 }
3172 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3173
3174 /* enable iic fifo slave2 */
3176 if (res != 0)
3177 {
3178 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3179 (void)mpu6500_deinit(&gs_handle);
3180
3181 return 1;
3182 }
3183 mpu6500_interface_debug_print("mpu6500: enable iic fifo slave2.\n");
3184 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_2, &enable);
3185 if (res != 0)
3186 {
3187 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3188 (void)mpu6500_deinit(&gs_handle);
3189
3190 return 1;
3191 }
3192 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3193
3194 /* disable iic fifo slave2 */
3196 if (res != 0)
3197 {
3198 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3199 (void)mpu6500_deinit(&gs_handle);
3200
3201 return 1;
3202 }
3203 mpu6500_interface_debug_print("mpu6500: disable iic fifo slave2.\n");
3204 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_2, &enable);
3205 if (res != 0)
3206 {
3207 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3208 (void)mpu6500_deinit(&gs_handle);
3209
3210 return 1;
3211 }
3212 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3213
3214 /* enable iic fifo slave3 */
3216 if (res != 0)
3217 {
3218 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3219 (void)mpu6500_deinit(&gs_handle);
3220
3221 return 1;
3222 }
3223 mpu6500_interface_debug_print("mpu6500: enable iic fifo slave3.\n");
3224 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_3, &enable);
3225 if (res != 0)
3226 {
3227 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3228 (void)mpu6500_deinit(&gs_handle);
3229
3230 return 1;
3231 }
3232 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3233
3234 /* disable iic fifo slave3 */
3236 if (res != 0)
3237 {
3238 mpu6500_interface_debug_print("mpu6500: set iic fifo enable failed.\n");
3239 (void)mpu6500_deinit(&gs_handle);
3240
3241 return 1;
3242 }
3243 mpu6500_interface_debug_print("mpu6500: disable iic fifo slave3.\n");
3244 res = mpu6500_get_iic_fifo_enable(&gs_handle, MPU6500_IIC_SLAVE_3, &enable);
3245 if (res != 0)
3246 {
3247 mpu6500_interface_debug_print("mpu6500: get iic fifo enable failed.\n");
3248 (void)mpu6500_deinit(&gs_handle);
3249
3250 return 1;
3251 }
3252 mpu6500_interface_debug_print("mpu6500: check iic fifo enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3253
3254 /* mpu6500_set_iic_mode/mpu6500_get_iic_mode test */
3255 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_mode/mpu6500_get_iic_mode test.\n");
3256
3257 /* write mode */
3259 if (res != 0)
3260 {
3261 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3262 (void)mpu6500_deinit(&gs_handle);
3263
3264 return 1;
3265 }
3266 mpu6500_interface_debug_print("mpu6500: set slave0 iic write mode.\n");
3267 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_0, &mode);
3268 if (res != 0)
3269 {
3270 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3271 (void)mpu6500_deinit(&gs_handle);
3272
3273 return 1;
3274 }
3275 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_WRITE ? "ok" : "error");
3276
3277 /* read mode */
3279 if (res != 0)
3280 {
3281 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3282 (void)mpu6500_deinit(&gs_handle);
3283
3284 return 1;
3285 }
3286 mpu6500_interface_debug_print("mpu6500: set slave0 iic read mode.\n");
3287 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_0, &mode);
3288 if (res != 0)
3289 {
3290 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3291 (void)mpu6500_deinit(&gs_handle);
3292
3293 return 1;
3294 }
3295 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_READ ? "ok" : "error");
3296
3297 /* write mode */
3299 if (res != 0)
3300 {
3301 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3302 (void)mpu6500_deinit(&gs_handle);
3303
3304 return 1;
3305 }
3306 mpu6500_interface_debug_print("mpu6500: set slave1 iic write mode.\n");
3307 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_1, &mode);
3308 if (res != 0)
3309 {
3310 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3311 (void)mpu6500_deinit(&gs_handle);
3312
3313 return 1;
3314 }
3315 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_WRITE ? "ok" : "error");
3316
3317 /* read mode */
3319 if (res != 0)
3320 {
3321 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3322 (void)mpu6500_deinit(&gs_handle);
3323
3324 return 1;
3325 }
3326 mpu6500_interface_debug_print("mpu6500: set slave1 iic read mode.\n");
3327 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_1, &mode);
3328 if (res != 0)
3329 {
3330 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3331 (void)mpu6500_deinit(&gs_handle);
3332
3333 return 1;
3334 }
3335 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_READ ? "ok" : "error");
3336
3337 /* write mode */
3339 if (res != 0)
3340 {
3341 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3342 (void)mpu6500_deinit(&gs_handle);
3343
3344 return 1;
3345 }
3346 mpu6500_interface_debug_print("mpu6500: set slave2 iic write mode.\n");
3347 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_2, &mode);
3348 if (res != 0)
3349 {
3350 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3351 (void)mpu6500_deinit(&gs_handle);
3352
3353 return 1;
3354 }
3355 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_WRITE ? "ok" : "error");
3356
3357 /* read mode */
3359 if (res != 0)
3360 {
3361 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3362 (void)mpu6500_deinit(&gs_handle);
3363
3364 return 1;
3365 }
3366 mpu6500_interface_debug_print("mpu6500: set slave2 iic read mode.\n");
3367 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_2, &mode);
3368 if (res != 0)
3369 {
3370 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3371 (void)mpu6500_deinit(&gs_handle);
3372
3373 return 1;
3374 }
3375 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_READ ? "ok" : "error");
3376
3377 /* write mode */
3379 if (res != 0)
3380 {
3381 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3382 (void)mpu6500_deinit(&gs_handle);
3383
3384 return 1;
3385 }
3386 mpu6500_interface_debug_print("mpu6500: set slave3 iic write mode.\n");
3387 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_3, &mode);
3388 if (res != 0)
3389 {
3390 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3391 (void)mpu6500_deinit(&gs_handle);
3392
3393 return 1;
3394 }
3395 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_WRITE ? "ok" : "error");
3396
3397 /* read mode */
3399 if (res != 0)
3400 {
3401 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3402 (void)mpu6500_deinit(&gs_handle);
3403
3404 return 1;
3405 }
3406 mpu6500_interface_debug_print("mpu6500: set slave3 iic read mode.\n");
3407 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_3, &mode);
3408 if (res != 0)
3409 {
3410 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3411 (void)mpu6500_deinit(&gs_handle);
3412
3413 return 1;
3414 }
3415 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_READ ? "ok" : "error");
3416
3417 /* write mode */
3419 if (res != 0)
3420 {
3421 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3422 (void)mpu6500_deinit(&gs_handle);
3423
3424 return 1;
3425 }
3426 mpu6500_interface_debug_print("mpu6500: set slave4 iic write mode.\n");
3427 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_4, &mode);
3428 if (res != 0)
3429 {
3430 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3431 (void)mpu6500_deinit(&gs_handle);
3432
3433 return 1;
3434 }
3435 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_WRITE ? "ok" : "error");
3436
3437 /* read mode */
3439 if (res != 0)
3440 {
3441 mpu6500_interface_debug_print("mpu6500: set iic mode failed.\n");
3442 (void)mpu6500_deinit(&gs_handle);
3443
3444 return 1;
3445 }
3446 mpu6500_interface_debug_print("mpu6500: set slave4 iic read mode.\n");
3447 res = mpu6500_get_iic_mode(&gs_handle, MPU6500_IIC_SLAVE_4, &mode);
3448 if (res != 0)
3449 {
3450 mpu6500_interface_debug_print("mpu6500: get iic mode failed.\n");
3451 (void)mpu6500_deinit(&gs_handle);
3452
3453 return 1;
3454 }
3455 mpu6500_interface_debug_print("mpu6500: check iic mode %s.\n", mode == MPU6500_IIC_MODE_READ ? "ok" : "error");
3456
3457 /* mpu6500_set_iic_address/mpu6500_get_iic_address test */
3458 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_address/mpu6500_get_iic_address test.\n");
3459
3460 /* slave0 */
3461 test = rand() % 0x7F;
3462 res = mpu6500_set_iic_address(&gs_handle, MPU6500_IIC_SLAVE_0, test);
3463 if (res != 0)
3464 {
3465 mpu6500_interface_debug_print("mpu6500: set iic address failed.\n");
3466 (void)mpu6500_deinit(&gs_handle);
3467
3468 return 1;
3469 }
3470 mpu6500_interface_debug_print("mpu6500: set slave0 iic address 0x%02X.\n", test);
3471 res = mpu6500_get_iic_address(&gs_handle, MPU6500_IIC_SLAVE_0, &test_check);
3472 if (res != 0)
3473 {
3474 mpu6500_interface_debug_print("mpu6500: get iic address failed.\n");
3475 (void)mpu6500_deinit(&gs_handle);
3476
3477 return 1;
3478 }
3479 mpu6500_interface_debug_print("mpu6500: check iic address %s.\n", test_check == test ? "ok" : "error");
3480
3481 /* slave1 */
3482 test = rand() % 0x7F;
3483 res = mpu6500_set_iic_address(&gs_handle, MPU6500_IIC_SLAVE_1, test);
3484 if (res != 0)
3485 {
3486 mpu6500_interface_debug_print("mpu6500: set iic address failed.\n");
3487 (void)mpu6500_deinit(&gs_handle);
3488
3489 return 1;
3490 }
3491 mpu6500_interface_debug_print("mpu6500: set slave1 iic address 0x%02X.\n", test);
3492 res = mpu6500_get_iic_address(&gs_handle, MPU6500_IIC_SLAVE_1, &test_check);
3493 if (res != 0)
3494 {
3495 mpu6500_interface_debug_print("mpu6500: get iic address failed.\n");
3496 (void)mpu6500_deinit(&gs_handle);
3497
3498 return 1;
3499 }
3500 mpu6500_interface_debug_print("mpu6500: check iic address %s.\n", test_check == test ? "ok" : "error");
3501
3502 /* slave2 */
3503 test = rand() % 0x7F;
3504 res = mpu6500_set_iic_address(&gs_handle, MPU6500_IIC_SLAVE_2, test);
3505 if (res != 0)
3506 {
3507 mpu6500_interface_debug_print("mpu6500: set iic address failed.\n");
3508 (void)mpu6500_deinit(&gs_handle);
3509
3510 return 1;
3511 }
3512 mpu6500_interface_debug_print("mpu6500: set slave2 iic address 0x%02X.\n", test);
3513 res = mpu6500_get_iic_address(&gs_handle, MPU6500_IIC_SLAVE_2, &test_check);
3514 if (res != 0)
3515 {
3516 mpu6500_interface_debug_print("mpu6500: get iic address failed.\n");
3517 (void)mpu6500_deinit(&gs_handle);
3518
3519 return 1;
3520 }
3521 mpu6500_interface_debug_print("mpu6500: check iic address %s.\n", test_check == test ? "ok" : "error");
3522
3523 /* slave3 */
3524 test = rand() % 0x7F;
3525 res = mpu6500_set_iic_address(&gs_handle, MPU6500_IIC_SLAVE_3, test);
3526 if (res != 0)
3527 {
3528 mpu6500_interface_debug_print("mpu6500: set iic address failed.\n");
3529 (void)mpu6500_deinit(&gs_handle);
3530
3531 return 1;
3532 }
3533 mpu6500_interface_debug_print("mpu6500: set slave3 iic address 0x%02X.\n", test);
3534 res = mpu6500_get_iic_address(&gs_handle, MPU6500_IIC_SLAVE_3, &test_check);
3535 if (res != 0)
3536 {
3537 mpu6500_interface_debug_print("mpu6500: get iic address failed.\n");
3538 (void)mpu6500_deinit(&gs_handle);
3539
3540 return 1;
3541 }
3542 mpu6500_interface_debug_print("mpu6500: check iic address %s.\n", test_check == test ? "ok" : "error");
3543
3544 /* slave4 */
3545 test = rand() % 0x7F;
3546 res = mpu6500_set_iic_address(&gs_handle, MPU6500_IIC_SLAVE_4, test);
3547 if (res != 0)
3548 {
3549 mpu6500_interface_debug_print("mpu6500: set iic address failed.\n");
3550 (void)mpu6500_deinit(&gs_handle);
3551
3552 return 1;
3553 }
3554 mpu6500_interface_debug_print("mpu6500: set slave4 iic address 0x%02X.\n", test);
3555 res = mpu6500_get_iic_address(&gs_handle, MPU6500_IIC_SLAVE_4, &test_check);
3556 if (res != 0)
3557 {
3558 mpu6500_interface_debug_print("mpu6500: get iic address failed.\n");
3559 (void)mpu6500_deinit(&gs_handle);
3560
3561 return 1;
3562 }
3563 mpu6500_interface_debug_print("mpu6500: check iic address %s.\n", test_check == test ? "ok" : "error");
3564
3565 /* mpu6500_set_iic_register/mpu6500_get_iic_register test */
3566 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_register/mpu6500_get_iic_register test.\n");
3567
3568 /* slave0 */
3569 test = rand() % 256;
3570 res = mpu6500_set_iic_register(&gs_handle, MPU6500_IIC_SLAVE_0, test);
3571 if (res != 0)
3572 {
3573 mpu6500_interface_debug_print("mpu6500: set iic register failed.\n");
3574 (void)mpu6500_deinit(&gs_handle);
3575
3576 return 1;
3577 }
3578 mpu6500_interface_debug_print("mpu6500: set slave0 iic register 0x%02X.\n", test);
3579 res = mpu6500_get_iic_register(&gs_handle, MPU6500_IIC_SLAVE_0, &test_check);
3580 if (res != 0)
3581 {
3582 mpu6500_interface_debug_print("mpu6500: get iic register failed.\n");
3583 (void)mpu6500_deinit(&gs_handle);
3584
3585 return 1;
3586 }
3587 mpu6500_interface_debug_print("mpu6500: check iic register %s.\n", test_check == test ? "ok" : "error");
3588
3589 /* slave1 */
3590 test = rand() % 256;
3591 res = mpu6500_set_iic_register(&gs_handle, MPU6500_IIC_SLAVE_1, test);
3592 if (res != 0)
3593 {
3594 mpu6500_interface_debug_print("mpu6500: set iic register failed.\n");
3595 (void)mpu6500_deinit(&gs_handle);
3596
3597 return 1;
3598 }
3599 mpu6500_interface_debug_print("mpu6500: set slave1 iic register 0x%02X.\n", test);
3600 res = mpu6500_get_iic_register(&gs_handle, MPU6500_IIC_SLAVE_1, &test_check);
3601 if (res != 0)
3602 {
3603 mpu6500_interface_debug_print("mpu6500: get iic register failed.\n");
3604 (void)mpu6500_deinit(&gs_handle);
3605
3606 return 1;
3607 }
3608 mpu6500_interface_debug_print("mpu6500: check iic register %s.\n", test_check == test ? "ok" : "error");
3609
3610 /* slave2 */
3611 test = rand() % 256;
3612 res = mpu6500_set_iic_register(&gs_handle, MPU6500_IIC_SLAVE_2, test);
3613 if (res != 0)
3614 {
3615 mpu6500_interface_debug_print("mpu6500: set iic register failed.\n");
3616 (void)mpu6500_deinit(&gs_handle);
3617
3618 return 1;
3619 }
3620 mpu6500_interface_debug_print("mpu6500: set slave2 iic register 0x%02X.\n", test);
3621 res = mpu6500_get_iic_register(&gs_handle, MPU6500_IIC_SLAVE_2, &test_check);
3622 if (res != 0)
3623 {
3624 mpu6500_interface_debug_print("mpu6500: get iic register failed.\n");
3625 (void)mpu6500_deinit(&gs_handle);
3626
3627 return 1;
3628 }
3629 mpu6500_interface_debug_print("mpu6500: check iic register %s.\n", test_check == test ? "ok" : "error");
3630
3631 /* slave3 */
3632 test = rand() % 256;
3633 res = mpu6500_set_iic_register(&gs_handle, MPU6500_IIC_SLAVE_3, test);
3634 if (res != 0)
3635 {
3636 mpu6500_interface_debug_print("mpu6500: set iic register failed.\n");
3637 (void)mpu6500_deinit(&gs_handle);
3638
3639 return 1;
3640 }
3641 mpu6500_interface_debug_print("mpu6500: set slave3 iic register 0x%02X.\n", test);
3642 res = mpu6500_get_iic_register(&gs_handle, MPU6500_IIC_SLAVE_3, &test_check);
3643 if (res != 0)
3644 {
3645 mpu6500_interface_debug_print("mpu6500: get iic register failed.\n");
3646 (void)mpu6500_deinit(&gs_handle);
3647
3648 return 1;
3649 }
3650 mpu6500_interface_debug_print("mpu6500: check iic register %s.\n", test_check == test ? "ok" : "error");
3651
3652 /* slave4 */
3653 test = rand() % 256;
3654 res = mpu6500_set_iic_register(&gs_handle, MPU6500_IIC_SLAVE_4, test);
3655 if (res != 0)
3656 {
3657 mpu6500_interface_debug_print("mpu6500: set iic register failed.\n");
3658 (void)mpu6500_deinit(&gs_handle);
3659
3660 return 1;
3661 }
3662 mpu6500_interface_debug_print("mpu6500: set slave4 iic register 0x%02X.\n", test);
3663 res = mpu6500_get_iic_register(&gs_handle, MPU6500_IIC_SLAVE_4, &test_check);
3664 if (res != 0)
3665 {
3666 mpu6500_interface_debug_print("mpu6500: get iic register failed.\n");
3667 (void)mpu6500_deinit(&gs_handle);
3668
3669 return 1;
3670 }
3671 mpu6500_interface_debug_print("mpu6500: check iic register %s.\n", test_check == test ? "ok" : "error");
3672
3673 /* mpu6500_set_iic_data_out/mpu6500_get_iic_data_out test */
3674 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_data_out/mpu6500_get_iic_data_out test.\n");
3675
3676 /* slave0 */
3677 test = rand() % 256;
3678 res = mpu6500_set_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_0, test);
3679 if (res != 0)
3680 {
3681 mpu6500_interface_debug_print("mpu6500: set iic data out failed.\n");
3682 (void)mpu6500_deinit(&gs_handle);
3683
3684 return 1;
3685 }
3686 mpu6500_interface_debug_print("mpu6500: set slave0 iic data out 0x%02X.\n", test);
3687 res = mpu6500_get_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_0, &test_check);
3688 if (res != 0)
3689 {
3690 mpu6500_interface_debug_print("mpu6500: get iic data out failed.\n");
3691 (void)mpu6500_deinit(&gs_handle);
3692
3693 return 1;
3694 }
3695 mpu6500_interface_debug_print("mpu6500: check iic data out %s.\n", test_check == test ? "ok" : "error");
3696
3697 /* slave1 */
3698 test = rand() % 256;
3699 res = mpu6500_set_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_1, test);
3700 if (res != 0)
3701 {
3702 mpu6500_interface_debug_print("mpu6500: set iic data out failed.\n");
3703 (void)mpu6500_deinit(&gs_handle);
3704
3705 return 1;
3706 }
3707 mpu6500_interface_debug_print("mpu6500: set slave1 iic data out 0x%02X.\n", test);
3708 res = mpu6500_get_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_1, &test_check);
3709 if (res != 0)
3710 {
3711 mpu6500_interface_debug_print("mpu6500: get iic data out failed.\n");
3712 (void)mpu6500_deinit(&gs_handle);
3713
3714 return 1;
3715 }
3716 mpu6500_interface_debug_print("mpu6500: check iic data out %s.\n", test_check == test ? "ok" : "error");
3717
3718 /* slave2 */
3719 test = rand() % 256;
3720 res = mpu6500_set_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_2, test);
3721 if (res != 0)
3722 {
3723 mpu6500_interface_debug_print("mpu6500: set iic data out failed.\n");
3724 (void)mpu6500_deinit(&gs_handle);
3725
3726 return 1;
3727 }
3728 mpu6500_interface_debug_print("mpu6500: set slave2 iic data out 0x%02X.\n", test);
3729 res = mpu6500_get_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_2, &test_check);
3730 if (res != 0)
3731 {
3732 mpu6500_interface_debug_print("mpu6500: get iic data out failed.\n");
3733 (void)mpu6500_deinit(&gs_handle);
3734
3735 return 1;
3736 }
3737 mpu6500_interface_debug_print("mpu6500: check iic data out %s.\n", test_check == test ? "ok" : "error");
3738
3739 /* slave3 */
3740 test = rand() % 256;
3741 res = mpu6500_set_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_3, test);
3742 if (res != 0)
3743 {
3744 mpu6500_interface_debug_print("mpu6500: set iic data out failed.\n");
3745 (void)mpu6500_deinit(&gs_handle);
3746
3747 return 1;
3748 }
3749 mpu6500_interface_debug_print("mpu6500: set slave3 iic data out 0x%02X.\n", test);
3750 res = mpu6500_get_iic_data_out(&gs_handle, MPU6500_IIC_SLAVE_3, &test_check);
3751 if (res != 0)
3752 {
3753 mpu6500_interface_debug_print("mpu6500: get iic data out failed.\n");
3754 (void)mpu6500_deinit(&gs_handle);
3755
3756 return 1;
3757 }
3758 mpu6500_interface_debug_print("mpu6500: check iic data out %s.\n", test_check == test ? "ok" : "error");
3759
3760 /* mpu6500_set_iic_enable/mpu6500_get_iic_enable test */
3761 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_enable/mpu6500_get_iic_enable test.\n");
3762
3763 /* slave0 iic enable */
3765 if (res != 0)
3766 {
3767 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3768 (void)mpu6500_deinit(&gs_handle);
3769
3770 return 1;
3771 }
3772 mpu6500_interface_debug_print("mpu6500: slave0 iic enable.\n");
3773 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_0, &enable);
3774 if (res != 0)
3775 {
3776 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3777 (void)mpu6500_deinit(&gs_handle);
3778
3779 return 1;
3780 }
3781 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3782
3783 /* slave0 iic disable */
3785 if (res != 0)
3786 {
3787 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3788 (void)mpu6500_deinit(&gs_handle);
3789
3790 return 1;
3791 }
3792 mpu6500_interface_debug_print("mpu6500: slave0 iic disable.\n");
3793 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_0, &enable);
3794 if (res != 0)
3795 {
3796 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3797 (void)mpu6500_deinit(&gs_handle);
3798
3799 return 1;
3800 }
3801 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3802
3803 /* slave1 iic enable */
3805 if (res != 0)
3806 {
3807 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3808 (void)mpu6500_deinit(&gs_handle);
3809
3810 return 1;
3811 }
3812 mpu6500_interface_debug_print("mpu6500: slave1 iic enable.\n");
3813 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_1, &enable);
3814 if (res != 0)
3815 {
3816 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3817 (void)mpu6500_deinit(&gs_handle);
3818
3819 return 1;
3820 }
3821 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3822
3823 /* slave1 iic disable */
3825 if (res != 0)
3826 {
3827 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3828 (void)mpu6500_deinit(&gs_handle);
3829
3830 return 1;
3831 }
3832 mpu6500_interface_debug_print("mpu6500: slave1 iic disable.\n");
3833 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_1, &enable);
3834 if (res != 0)
3835 {
3836 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3837 (void)mpu6500_deinit(&gs_handle);
3838
3839 return 1;
3840 }
3841 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3842
3843 /* slave2 iic enable */
3845 if (res != 0)
3846 {
3847 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3848 (void)mpu6500_deinit(&gs_handle);
3849
3850 return 1;
3851 }
3852 mpu6500_interface_debug_print("mpu6500: slave2 iic enable.\n");
3853 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_2, &enable);
3854 if (res != 0)
3855 {
3856 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3857 (void)mpu6500_deinit(&gs_handle);
3858
3859 return 1;
3860 }
3861 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3862
3863 /* slave2 iic disable */
3865 if (res != 0)
3866 {
3867 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3868 (void)mpu6500_deinit(&gs_handle);
3869
3870 return 1;
3871 }
3872 mpu6500_interface_debug_print("mpu6500: slave2 iic disable.\n");
3873 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_2, &enable);
3874 if (res != 0)
3875 {
3876 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3877 (void)mpu6500_deinit(&gs_handle);
3878
3879 return 1;
3880 }
3881 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3882
3883 /* slave3 iic enable */
3885 if (res != 0)
3886 {
3887 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3888 (void)mpu6500_deinit(&gs_handle);
3889
3890 return 1;
3891 }
3892 mpu6500_interface_debug_print("mpu6500: slave3 iic enable.\n");
3893 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_3, &enable);
3894 if (res != 0)
3895 {
3896 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3897 (void)mpu6500_deinit(&gs_handle);
3898
3899 return 1;
3900 }
3901 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3902
3903 /* slave3 iic disable */
3905 if (res != 0)
3906 {
3907 mpu6500_interface_debug_print("mpu6500: set iic enable failed.\n");
3908 (void)mpu6500_deinit(&gs_handle);
3909
3910 return 1;
3911 }
3912 mpu6500_interface_debug_print("mpu6500: slave3 iic disable.\n");
3913 res = mpu6500_get_iic_enable(&gs_handle, MPU6500_IIC_SLAVE_3, &enable);
3914 if (res != 0)
3915 {
3916 mpu6500_interface_debug_print("mpu6500: get iic enable failed.\n");
3917 (void)mpu6500_deinit(&gs_handle);
3918
3919 return 1;
3920 }
3921 mpu6500_interface_debug_print("mpu6500: check iic enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3922
3923 /* mpu6500_set_iic_byte_swap/mpu6500_get_iic_byte_swap test */
3924 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_byte_swap/mpu6500_get_iic_byte_swap test.\n");
3925
3926 /* enable slave0 byte swap */
3928 if (res != 0)
3929 {
3930 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
3931 (void)mpu6500_deinit(&gs_handle);
3932
3933 return 1;
3934 }
3935 mpu6500_interface_debug_print("mpu6500: enable slave0 byte swap.\n");
3936 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_0, &enable);
3937 if (res != 0)
3938 {
3939 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
3940 (void)mpu6500_deinit(&gs_handle);
3941
3942 return 1;
3943 }
3944 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3945
3946 /* disable slave0 byte swap */
3948 if (res != 0)
3949 {
3950 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
3951 (void)mpu6500_deinit(&gs_handle);
3952
3953 return 1;
3954 }
3955 mpu6500_interface_debug_print("mpu6500: disable slave0 byte swap.\n");
3956 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_0, &enable);
3957 if (res != 0)
3958 {
3959 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
3960 (void)mpu6500_deinit(&gs_handle);
3961
3962 return 1;
3963 }
3964 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
3965
3966 /* enable slave1 byte swap */
3968 if (res != 0)
3969 {
3970 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
3971 (void)mpu6500_deinit(&gs_handle);
3972
3973 return 1;
3974 }
3975 mpu6500_interface_debug_print("mpu6500: enable slave1 byte swap.\n");
3976 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_1, &enable);
3977 if (res != 0)
3978 {
3979 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
3980 (void)mpu6500_deinit(&gs_handle);
3981
3982 return 1;
3983 }
3984 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
3985
3986 /* disable slave1 byte swap */
3988 if (res != 0)
3989 {
3990 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
3991 (void)mpu6500_deinit(&gs_handle);
3992
3993 return 1;
3994 }
3995 mpu6500_interface_debug_print("mpu6500: disable slave1 byte swap.\n");
3996 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_1, &enable);
3997 if (res != 0)
3998 {
3999 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
4000 (void)mpu6500_deinit(&gs_handle);
4001
4002 return 1;
4003 }
4004 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4005
4006 /* enable slave2 byte swap */
4008 if (res != 0)
4009 {
4010 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
4011 (void)mpu6500_deinit(&gs_handle);
4012
4013 return 1;
4014 }
4015 mpu6500_interface_debug_print("mpu6500: enable slave2 byte swap.\n");
4016 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_2, &enable);
4017 if (res != 0)
4018 {
4019 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
4020 (void)mpu6500_deinit(&gs_handle);
4021
4022 return 1;
4023 }
4024 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4025
4026 /* disable slave2 byte swap */
4028 if (res != 0)
4029 {
4030 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
4031 (void)mpu6500_deinit(&gs_handle);
4032
4033 return 1;
4034 }
4035 mpu6500_interface_debug_print("mpu6500: disable slave2 byte swap.\n");
4036 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_2, &enable);
4037 if (res != 0)
4038 {
4039 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
4040 (void)mpu6500_deinit(&gs_handle);
4041
4042 return 1;
4043 }
4044 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4045
4046 /* enable slave3 byte swap */
4048 if (res != 0)
4049 {
4050 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
4051 (void)mpu6500_deinit(&gs_handle);
4052
4053 return 1;
4054 }
4055 mpu6500_interface_debug_print("mpu6500: enable slave3 byte swap.\n");
4056 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_3, &enable);
4057 if (res != 0)
4058 {
4059 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
4060 (void)mpu6500_deinit(&gs_handle);
4061
4062 return 1;
4063 }
4064 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4065
4066 /* disable slave3 byte swap */
4068 if (res != 0)
4069 {
4070 mpu6500_interface_debug_print("mpu6500: set iic byte swap failed.\n");
4071 (void)mpu6500_deinit(&gs_handle);
4072
4073 return 1;
4074 }
4075 mpu6500_interface_debug_print("mpu6500: disable slave3 byte swap.\n");
4076 res = mpu6500_get_iic_byte_swap(&gs_handle, MPU6500_IIC_SLAVE_3, &enable);
4077 if (res != 0)
4078 {
4079 mpu6500_interface_debug_print("mpu6500: get iic byte swap failed.\n");
4080 (void)mpu6500_deinit(&gs_handle);
4081
4082 return 1;
4083 }
4084 mpu6500_interface_debug_print("mpu6500: check iic byte swap %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4085
4086 /* mpu6500_set_iic_transaction_mode/mpu6500_get_iic_transaction_mode test */
4087 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_transaction_mode/mpu6500_get_iic_transaction_mode test.\n");
4088
4089 /* set slave0 data transaction mode */
4091 if (res != 0)
4092 {
4093 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4094 (void)mpu6500_deinit(&gs_handle);
4095
4096 return 1;
4097 }
4098 mpu6500_interface_debug_print("mpu6500: set slave0 data transaction mode.\n");
4099 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_0, &tran_mode);
4100 if (res != 0)
4101 {
4102 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4103 (void)mpu6500_deinit(&gs_handle);
4104
4105 return 1;
4106 }
4107 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_DATA ? "ok" : "error");
4108
4109 /* set slave0 reg data transaction mode */
4111 if (res != 0)
4112 {
4113 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4114 (void)mpu6500_deinit(&gs_handle);
4115
4116 return 1;
4117 }
4118 mpu6500_interface_debug_print("mpu6500: set slave0 reg data transaction mode.\n");
4119 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_0, &tran_mode);
4120 if (res != 0)
4121 {
4122 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4123 (void)mpu6500_deinit(&gs_handle);
4124
4125 return 1;
4126 }
4127 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_REG_DATA ? "ok" : "error");
4128
4129 /* set slave1 data transaction mode */
4131 if (res != 0)
4132 {
4133 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4134 (void)mpu6500_deinit(&gs_handle);
4135
4136 return 1;
4137 }
4138 mpu6500_interface_debug_print("mpu6500: set slave1 data transaction mode.\n");
4139 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_1, &tran_mode);
4140 if (res != 0)
4141 {
4142 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4143 (void)mpu6500_deinit(&gs_handle);
4144
4145 return 1;
4146 }
4147 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_DATA ? "ok" : "error");
4148
4149 /* set slave1 reg data transaction mode */
4151 if (res != 0)
4152 {
4153 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4154 (void)mpu6500_deinit(&gs_handle);
4155
4156 return 1;
4157 }
4158 mpu6500_interface_debug_print("mpu6500: set slave1 reg data transaction mode.\n");
4159 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_1, &tran_mode);
4160 if (res != 0)
4161 {
4162 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4163 (void)mpu6500_deinit(&gs_handle);
4164
4165 return 1;
4166 }
4167 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_REG_DATA ? "ok" : "error");
4168
4169 /* set slave2 data transaction mode */
4171 if (res != 0)
4172 {
4173 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4174 (void)mpu6500_deinit(&gs_handle);
4175
4176 return 1;
4177 }
4178 mpu6500_interface_debug_print("mpu6500: set slave2 data transaction mode.\n");
4179 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_2, &tran_mode);
4180 if (res != 0)
4181 {
4182 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4183 (void)mpu6500_deinit(&gs_handle);
4184
4185 return 1;
4186 }
4187 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_DATA ? "ok" : "error");
4188
4189 /* set slave2 reg data transaction mode */
4191 if (res != 0)
4192 {
4193 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4194 (void)mpu6500_deinit(&gs_handle);
4195
4196 return 1;
4197 }
4198 mpu6500_interface_debug_print("mpu6500: set slave2 reg data transaction mode.\n");
4199 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_2, &tran_mode);
4200 if (res != 0)
4201 {
4202 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4203 (void)mpu6500_deinit(&gs_handle);
4204
4205 return 1;
4206 }
4207 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_REG_DATA ? "ok" : "error");
4208
4209 /* set slave3 data transaction mode */
4211 if (res != 0)
4212 {
4213 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4214 (void)mpu6500_deinit(&gs_handle);
4215
4216 return 1;
4217 }
4218 mpu6500_interface_debug_print("mpu6500: set slave3 data transaction mode.\n");
4219 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_3, &tran_mode);
4220 if (res != 0)
4221 {
4222 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4223 (void)mpu6500_deinit(&gs_handle);
4224
4225 return 1;
4226 }
4227 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_DATA ? "ok" : "error");
4228
4229 /* set slave3 reg data transaction mode */
4231 if (res != 0)
4232 {
4233 mpu6500_interface_debug_print("mpu6500: set iic transaction mode failed.\n");
4234 (void)mpu6500_deinit(&gs_handle);
4235
4236 return 1;
4237 }
4238 mpu6500_interface_debug_print("mpu6500: set slave3 reg data transaction mode.\n");
4239 res = mpu6500_get_iic_transaction_mode(&gs_handle, MPU6500_IIC_SLAVE_3, &tran_mode);
4240 if (res != 0)
4241 {
4242 mpu6500_interface_debug_print("mpu6500: get iic transaction mode failed.\n");
4243 (void)mpu6500_deinit(&gs_handle);
4244
4245 return 1;
4246 }
4247 mpu6500_interface_debug_print("mpu6500: check iic transaction mode %s.\n", tran_mode == MPU6500_IIC_TRANSACTION_MODE_REG_DATA ? "ok" : "error");
4248
4249 /* mpu6500_set_iic_group_order/mpu6500_get_iic_group_order test */
4250 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_group_order/mpu6500_get_iic_group_order test.\n");
4251
4252 /* set slave0 group order even */
4254 if (res != 0)
4255 {
4256 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4257 (void)mpu6500_deinit(&gs_handle);
4258
4259 return 1;
4260 }
4261 mpu6500_interface_debug_print("mpu6500: set slave0 group order even.\n");
4262 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_0, &order);
4263 if (res != 0)
4264 {
4265 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4266 (void)mpu6500_deinit(&gs_handle);
4267
4268 return 1;
4269 }
4270 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_EVEN ? "ok" : "error");
4271
4272 /* set slave0 group order odd */
4274 if (res != 0)
4275 {
4276 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4277 (void)mpu6500_deinit(&gs_handle);
4278
4279 return 1;
4280 }
4281 mpu6500_interface_debug_print("mpu6500: set slave0 group order odd.\n");
4282 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_0, &order);
4283 if (res != 0)
4284 {
4285 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4286 (void)mpu6500_deinit(&gs_handle);
4287
4288 return 1;
4289 }
4290 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_ODD ? "ok" : "error");
4291
4292 /* set slave1 group order even */
4294 if (res != 0)
4295 {
4296 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4297 (void)mpu6500_deinit(&gs_handle);
4298
4299 return 1;
4300 }
4301 mpu6500_interface_debug_print("mpu6500: set slave1 group order even.\n");
4302 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_1, &order);
4303 if (res != 0)
4304 {
4305 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4306 (void)mpu6500_deinit(&gs_handle);
4307
4308 return 1;
4309 }
4310 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_EVEN ? "ok" : "error");
4311
4312 /* set slave1 group order odd */
4314 if (res != 0)
4315 {
4316 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4317 (void)mpu6500_deinit(&gs_handle);
4318
4319 return 1;
4320 }
4321 mpu6500_interface_debug_print("mpu6500: set slave1 group order odd.\n");
4322 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_1, &order);
4323 if (res != 0)
4324 {
4325 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4326 (void)mpu6500_deinit(&gs_handle);
4327
4328 return 1;
4329 }
4330 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_ODD ? "ok" : "error");
4331
4332 /* set slave2 group order even */
4334 if (res != 0)
4335 {
4336 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4337 (void)mpu6500_deinit(&gs_handle);
4338
4339 return 1;
4340 }
4341 mpu6500_interface_debug_print("mpu6500: set slave2 group order even.\n");
4342 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_2, &order);
4343 if (res != 0)
4344 {
4345 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4346 (void)mpu6500_deinit(&gs_handle);
4347
4348 return 1;
4349 }
4350 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_EVEN ? "ok" : "error");
4351
4352 /* set slave2 group order odd */
4354 if (res != 0)
4355 {
4356 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4357 (void)mpu6500_deinit(&gs_handle);
4358
4359 return 1;
4360 }
4361 mpu6500_interface_debug_print("mpu6500: set slave2 group order odd.\n");
4362 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_2, &order);
4363 if (res != 0)
4364 {
4365 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4366 (void)mpu6500_deinit(&gs_handle);
4367
4368 return 1;
4369 }
4370 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_ODD ? "ok" : "error");
4371
4372 /* set slave3 group order even */
4374 if (res != 0)
4375 {
4376 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4377 (void)mpu6500_deinit(&gs_handle);
4378
4379 return 1;
4380 }
4381 mpu6500_interface_debug_print("mpu6500: set slave3 group order even.\n");
4382 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_3, &order);
4383 if (res != 0)
4384 {
4385 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4386 (void)mpu6500_deinit(&gs_handle);
4387
4388 return 1;
4389 }
4390 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_EVEN ? "ok" : "error");
4391
4392 /* set slave3 group order odd */
4394 if (res != 0)
4395 {
4396 mpu6500_interface_debug_print("mpu6500: set iic group order failed.\n");
4397 (void)mpu6500_deinit(&gs_handle);
4398
4399 return 1;
4400 }
4401 mpu6500_interface_debug_print("mpu6500: set slave3 group order odd.\n");
4402 res = mpu6500_get_iic_group_order(&gs_handle, MPU6500_IIC_SLAVE_3, &order);
4403 if (res != 0)
4404 {
4405 mpu6500_interface_debug_print("mpu6500: get iic group order failed.\n");
4406 (void)mpu6500_deinit(&gs_handle);
4407
4408 return 1;
4409 }
4410 mpu6500_interface_debug_print("mpu6500: check iic group order %s.\n", order == MPU6500_IIC_GROUP_ORDER_ODD ? "ok" : "error");
4411
4412 /* mpu6500_set_iic_transferred_len/mpu6500_get_iic_transferred_len test */
4413 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_transferred_len/mpu6500_get_iic_transferred_len test.\n");
4414
4415 test = rand() % 16;
4417 if (res != 0)
4418 {
4419 mpu6500_interface_debug_print("mpu6500: set iic transferred len failed.\n");
4420 (void)mpu6500_deinit(&gs_handle);
4421
4422 return 1;
4423 }
4424 mpu6500_interface_debug_print("mpu6500: set slave0 iic transferred len %d.\n", test);
4425 res = mpu6500_get_iic_transferred_len(&gs_handle, MPU6500_IIC_SLAVE_0, &test_check);
4426 if (res != 0)
4427 {
4428 mpu6500_interface_debug_print("mpu6500: get iic transferred len failed.\n");
4429 (void)mpu6500_deinit(&gs_handle);
4430
4431 return 1;
4432 }
4433 mpu6500_interface_debug_print("mpu6500: check iic transferred len %s.\n", test_check == test ? "ok" : "error");
4434
4435 test = rand() % 16;
4437 if (res != 0)
4438 {
4439 mpu6500_interface_debug_print("mpu6500: set iic transferred len failed.\n");
4440 (void)mpu6500_deinit(&gs_handle);
4441
4442 return 1;
4443 }
4444 mpu6500_interface_debug_print("mpu6500: set slave1 iic transferred len %d.\n", test);
4445 res = mpu6500_get_iic_transferred_len(&gs_handle, MPU6500_IIC_SLAVE_1, &test_check);
4446 if (res != 0)
4447 {
4448 mpu6500_interface_debug_print("mpu6500: get iic transferred len failed.\n");
4449 (void)mpu6500_deinit(&gs_handle);
4450
4451 return 1;
4452 }
4453 mpu6500_interface_debug_print("mpu6500: check iic transferred len %s.\n", test_check == test ? "ok" : "error");
4454
4455 test = rand() % 16;
4457 if (res != 0)
4458 {
4459 mpu6500_interface_debug_print("mpu6500: set iic transferred len failed.\n");
4460 (void)mpu6500_deinit(&gs_handle);
4461
4462 return 1;
4463 }
4464 mpu6500_interface_debug_print("mpu6500: set slave2 iic transferred len %d.\n", test);
4465 res = mpu6500_get_iic_transferred_len(&gs_handle, MPU6500_IIC_SLAVE_2, &test_check);
4466 if (res != 0)
4467 {
4468 mpu6500_interface_debug_print("mpu6500: get iic transferred len failed.\n");
4469 (void)mpu6500_deinit(&gs_handle);
4470
4471 return 1;
4472 }
4473 mpu6500_interface_debug_print("mpu6500: check iic transferred len %s.\n", test_check == test ? "ok" : "error");
4474
4475 test = rand() % 16;
4477 if (res != 0)
4478 {
4479 mpu6500_interface_debug_print("mpu6500: set iic transferred len failed.\n");
4480 (void)mpu6500_deinit(&gs_handle);
4481
4482 return 1;
4483 }
4484 mpu6500_interface_debug_print("mpu6500: set slave3 iic transferred len %d.\n", test);
4485 res = mpu6500_get_iic_transferred_len(&gs_handle, MPU6500_IIC_SLAVE_3, &test_check);
4486 if (res != 0)
4487 {
4488 mpu6500_interface_debug_print("mpu6500: get iic transferred len failed.\n");
4489 (void)mpu6500_deinit(&gs_handle);
4490
4491 return 1;
4492 }
4493 mpu6500_interface_debug_print("mpu6500: check iic transferred len %s.\n", test_check == test ? "ok" : "error");
4494
4495 /* mpu6500_get_iic_status test */
4496 mpu6500_interface_debug_print("mpu6500: mpu6500_get_iic_status test.\n");
4497
4498 /* get iic status */
4499 res = mpu6500_get_iic_status(&gs_handle, &status);
4500 if (res != 0)
4501 {
4502 mpu6500_interface_debug_print("mpu6500: get iic status failed.\n");
4503 (void)mpu6500_deinit(&gs_handle);
4504
4505 return 1;
4506 }
4507 mpu6500_interface_debug_print("mpu6500: iic status is 0x%02X.\n", status);
4508
4509 /* mpu6500_set_iic_delay_enable/mpu6500_get_iic_delay_enable test */
4510 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_delay_enable/mpu6500_get_iic_delay_enable test.\n");
4511
4512 /* enable delay shadow */
4514 if (res != 0)
4515 {
4516 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4517 (void)mpu6500_deinit(&gs_handle);
4518
4519 return 1;
4520 }
4521 mpu6500_interface_debug_print("mpu6500: enable delay shadow.\n");
4523 if (res != 0)
4524 {
4525 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4526 (void)mpu6500_deinit(&gs_handle);
4527
4528 return 1;
4529 }
4530 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4531
4532 /* disable delay shadow */
4534 if (res != 0)
4535 {
4536 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4537 (void)mpu6500_deinit(&gs_handle);
4538
4539 return 1;
4540 }
4541 mpu6500_interface_debug_print("mpu6500: disable delay shadow.\n");
4543 if (res != 0)
4544 {
4545 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4546 (void)mpu6500_deinit(&gs_handle);
4547
4548 return 1;
4549 }
4550 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4551
4552 /* enable delay slave4 */
4554 if (res != 0)
4555 {
4556 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4557 (void)mpu6500_deinit(&gs_handle);
4558
4559 return 1;
4560 }
4561 mpu6500_interface_debug_print("mpu6500: enable delay slave4.\n");
4562 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_4, &enable);
4563 if (res != 0)
4564 {
4565 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4566 (void)mpu6500_deinit(&gs_handle);
4567
4568 return 1;
4569 }
4570 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4571
4572 /* disable delay slave4 */
4574 if (res != 0)
4575 {
4576 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4577 (void)mpu6500_deinit(&gs_handle);
4578
4579 return 1;
4580 }
4581 mpu6500_interface_debug_print("mpu6500: disable delay slave4.\n");
4582 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_4, &enable);
4583 if (res != 0)
4584 {
4585 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4586 (void)mpu6500_deinit(&gs_handle);
4587
4588 return 1;
4589 }
4590 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4591
4592 /* enable delay slave3 */
4594 if (res != 0)
4595 {
4596 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4597 (void)mpu6500_deinit(&gs_handle);
4598
4599 return 1;
4600 }
4601 mpu6500_interface_debug_print("mpu6500: enable delay slave3.\n");
4602 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_3, &enable);
4603 if (res != 0)
4604 {
4605 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4606 (void)mpu6500_deinit(&gs_handle);
4607
4608 return 1;
4609 }
4610 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4611
4612 /* disable delay slave3 */
4614 if (res != 0)
4615 {
4616 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4617 (void)mpu6500_deinit(&gs_handle);
4618
4619 return 1;
4620 }
4621 mpu6500_interface_debug_print("mpu6500: disable delay slave3.\n");
4622 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_3, &enable);
4623 if (res != 0)
4624 {
4625 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4626 (void)mpu6500_deinit(&gs_handle);
4627
4628 return 1;
4629 }
4630 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4631
4632 /* enable delay slave2 */
4634 if (res != 0)
4635 {
4636 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4637 (void)mpu6500_deinit(&gs_handle);
4638
4639 return 1;
4640 }
4641 mpu6500_interface_debug_print("mpu6500: enable delay slave2.\n");
4642 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_2, &enable);
4643 if (res != 0)
4644 {
4645 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4646 (void)mpu6500_deinit(&gs_handle);
4647
4648 return 1;
4649 }
4650 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4651
4652 /* disable delay slave2 */
4654 if (res != 0)
4655 {
4656 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4657 (void)mpu6500_deinit(&gs_handle);
4658
4659 return 1;
4660 }
4661 mpu6500_interface_debug_print("mpu6500: disable delay slave2.\n");
4662 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_2, &enable);
4663 if (res != 0)
4664 {
4665 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4666 (void)mpu6500_deinit(&gs_handle);
4667
4668 return 1;
4669 }
4670 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4671
4672 /* enable delay slave1 */
4674 if (res != 0)
4675 {
4676 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4677 (void)mpu6500_deinit(&gs_handle);
4678
4679 return 1;
4680 }
4681 mpu6500_interface_debug_print("mpu6500: enable delay slave1.\n");
4682 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_1, &enable);
4683 if (res != 0)
4684 {
4685 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4686 (void)mpu6500_deinit(&gs_handle);
4687
4688 return 1;
4689 }
4690 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4691
4692 /* disable delay slave1 */
4694 if (res != 0)
4695 {
4696 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4697 (void)mpu6500_deinit(&gs_handle);
4698
4699 return 1;
4700 }
4701 mpu6500_interface_debug_print("mpu6500: disable delay slave1.\n");
4702 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_1, &enable);
4703 if (res != 0)
4704 {
4705 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4706 (void)mpu6500_deinit(&gs_handle);
4707
4708 return 1;
4709 }
4710 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4711
4712 /* enable delay slave0 */
4714 if (res != 0)
4715 {
4716 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4717 (void)mpu6500_deinit(&gs_handle);
4718
4719 return 0;
4720 }
4721 mpu6500_interface_debug_print("mpu6500: enable delay slave0.\n");
4722 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_0, &enable);
4723 if (res != 0)
4724 {
4725 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4726 (void)mpu6500_deinit(&gs_handle);
4727
4728 return 0;
4729 }
4730 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4731
4732 /* disable delay slave0 */
4734 if (res != 0)
4735 {
4736 mpu6500_interface_debug_print("mpu6500: set iic delay enable failed.\n");
4737 (void)mpu6500_deinit(&gs_handle);
4738
4739 return 0;
4740 }
4741 mpu6500_interface_debug_print("mpu6500: disable delay slave0.\n");
4742 res = mpu6500_get_iic_delay_enable(&gs_handle, MPU6500_IIC_DELAY_SLAVE_0, &enable);
4743 if (res != 0)
4744 {
4745 mpu6500_interface_debug_print("mpu6500: get iic delay enable failed.\n");
4746 (void)mpu6500_deinit(&gs_handle);
4747
4748 return 0;
4749 }
4750 mpu6500_interface_debug_print("mpu6500: check iic delay enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4751
4752 /* mpu6500_set_iic4_enable/mpu6500_get_iic4_enable test */
4753 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic4_enable/mpu6500_get_iic4_enable test.\n");
4754
4755 /* enable iic4 */
4756 res = mpu6500_set_iic4_enable(&gs_handle, MPU6500_BOOL_TRUE);
4757 if (res != 0)
4758 {
4759 mpu6500_interface_debug_print("mpu6500: set iic4 enable failed.\n");
4760 (void)mpu6500_deinit(&gs_handle);
4761
4762 return 0;
4763 }
4764 mpu6500_interface_debug_print("mpu6500: enable iic4.\n");
4765 res = mpu6500_get_iic4_enable(&gs_handle, &enable);
4766 if (res != 0)
4767 {
4768 mpu6500_interface_debug_print("mpu6500: get iic4 enable failed.\n");
4769 (void)mpu6500_deinit(&gs_handle);
4770
4771 return 0;
4772 }
4773 mpu6500_interface_debug_print("mpu6500: check iic4 enable %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4774
4775 /* disable iic4 */
4777 if (res != 0)
4778 {
4779 mpu6500_interface_debug_print("mpu6500: set iic4 enable failed.\n");
4780 (void)mpu6500_deinit(&gs_handle);
4781
4782 return 0;
4783 }
4784 mpu6500_interface_debug_print("mpu6500: disable iic4.\n");
4785 res = mpu6500_get_iic4_enable(&gs_handle, &enable);
4786 if (res != 0)
4787 {
4788 mpu6500_interface_debug_print("mpu6500: get iic4 enable failed.\n");
4789 (void)mpu6500_deinit(&gs_handle);
4790
4791 return 0;
4792 }
4793 mpu6500_interface_debug_print("mpu6500: check iic4 enable %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4794
4795 /* mpu6500_set_iic4_interrupt/mpu6500_get_iic4_interrupt test */
4796 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic4_interrupt/mpu6500_get_iic4_interrupt test.\n");
4797
4798 /* enable iic4 interrupt */
4800 if (res != 0)
4801 {
4802 mpu6500_interface_debug_print("mpu6500: set iic4 interrupt failed.\n");
4803 (void)mpu6500_deinit(&gs_handle);
4804
4805 return 0;
4806 }
4807 mpu6500_interface_debug_print("mpu6500: enable iic4 interrupt.\n");
4808 res = mpu6500_get_iic4_interrupt(&gs_handle, &enable);
4809 if (res != 0)
4810 {
4811 mpu6500_interface_debug_print("mpu6500: get iic4 interrupt failed.\n");
4812 (void)mpu6500_deinit(&gs_handle);
4813
4814 return 0;
4815 }
4816 mpu6500_interface_debug_print("mpu6500: check iic4 interrupt %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4817
4818 /* disable iic4 interrupt */
4820 if (res != 0)
4821 {
4822 mpu6500_interface_debug_print("mpu6500: set iic4 interrupt failed.\n");
4823 (void)mpu6500_deinit(&gs_handle);
4824
4825 return 0;
4826 }
4827 mpu6500_interface_debug_print("mpu6500: disable iic4 interrupt.\n");
4828 res = mpu6500_get_iic4_interrupt(&gs_handle, &enable);
4829 if (res != 0)
4830 {
4831 mpu6500_interface_debug_print("mpu6500: get iic4 interrupt failed.\n");
4832 (void)mpu6500_deinit(&gs_handle);
4833
4834 return 0;
4835 }
4836 mpu6500_interface_debug_print("mpu6500: check iic4 interrupt %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4837
4838 /* mpu6500_set_iic4_transaction_mode/mpu6500_get_iic4_transaction_mode test */
4839 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic4_transaction_mode/mpu6500_get_iic4_transaction_mode test.\n");
4840
4841 /* transaction mode data */
4843 if (res != 0)
4844 {
4845 mpu6500_interface_debug_print("mpu6500: set iic4 transaction mode failed.\n");
4846 (void)mpu6500_deinit(&gs_handle);
4847
4848 return 0;
4849 }
4850 mpu6500_interface_debug_print("mpu6500: set iic4 transaction mode data.\n");
4851 res = mpu6500_get_iic4_transaction_mode(&gs_handle, &transaction_mode);
4852 if (res != 0)
4853 {
4854 mpu6500_interface_debug_print("mpu6500: get iic4 transaction mode failed.\n");
4855 (void)mpu6500_deinit(&gs_handle);
4856
4857 return 0;
4858 }
4859 mpu6500_interface_debug_print("mpu6500: check iic4 transaction mode %s.\n", transaction_mode == MPU6500_IIC4_TRANSACTION_MODE_DATA ? "ok" : "error");
4860
4861 /* transaction mode reg */
4863 if (res != 0)
4864 {
4865 mpu6500_interface_debug_print("mpu6500: set iic4 transaction mode failed.\n");
4866 (void)mpu6500_deinit(&gs_handle);
4867
4868 return 0;
4869 }
4870 mpu6500_interface_debug_print("mpu6500: set iic4 transaction mode reg.\n");
4871 res = mpu6500_get_iic4_transaction_mode(&gs_handle, &transaction_mode);
4872 if (res != 0)
4873 {
4874 mpu6500_interface_debug_print("mpu6500: get iic4 transaction mode failed.\n");
4875 (void)mpu6500_deinit(&gs_handle);
4876
4877 return 0;
4878 }
4879 mpu6500_interface_debug_print("mpu6500: check iic4 transaction mode %s.\n", transaction_mode == MPU6500_IIC4_TRANSACTION_MODE_REG ? "ok" : "error");
4880
4881 /* mpu6500_set_iic_delay/mpu6500_get_iic_delay test */
4882 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic_delay/mpu6500_get_iic_delay test.\n");
4883
4884 test = rand() % 0x1F;
4885 res = mpu6500_set_iic_delay(&gs_handle, test);
4886 if (res != 0)
4887 {
4888 mpu6500_interface_debug_print("mpu6500: set iic delay failed.\n");
4889 (void)mpu6500_deinit(&gs_handle);
4890
4891 return 0;
4892 }
4893 mpu6500_interface_debug_print("mpu6500: set iic delay 0x%02X.\n", test);
4894 res = mpu6500_get_iic_delay(&gs_handle, &test_check);
4895 if (res != 0)
4896 {
4897 mpu6500_interface_debug_print("mpu6500: get iic delay failed.\n");
4898 (void)mpu6500_deinit(&gs_handle);
4899
4900 return 0;
4901 }
4902 mpu6500_interface_debug_print("mpu6500: check iic delay %s.\n", test == test_check ? "ok" : "error");
4903
4904 /* mpu6500_set_iic4_data_out/mpu6500_get_iic4_data_out test */
4905 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic4_data_out/mpu6500_get_iic4_data_out test.\n");
4906
4907 test = rand() % 256;
4908 res = mpu6500_set_iic4_data_out(&gs_handle, test);
4909 if (res != 0)
4910 {
4911 mpu6500_interface_debug_print("mpu6500: set iic4 data out failed.\n");
4912 (void)mpu6500_deinit(&gs_handle);
4913
4914 return 0;
4915 }
4916 mpu6500_interface_debug_print("mpu6500: set iic4 data out 0x%02X.\n", test);
4917 res = mpu6500_get_iic4_data_out(&gs_handle, &test_check);
4918 if (res != 0)
4919 {
4920 mpu6500_interface_debug_print("mpu6500: get iic4 data out failed.\n");
4921 (void)mpu6500_deinit(&gs_handle);
4922
4923 return 0;
4924 }
4925 mpu6500_interface_debug_print("mpu6500: check iic4 data out %s.\n", test == test_check ? "ok" : "error");
4926
4927 /* mpu6500_set_iic4_data_in/mpu6500_get_iic4_data_in test */
4928 mpu6500_interface_debug_print("mpu6500: mpu6500_set_iic4_data_in/mpu6500_get_iic4_data_in test.\n");
4929
4930 test = rand() % 256;
4931 res = mpu6500_set_iic4_data_in(&gs_handle, test);
4932 if (res != 0)
4933 {
4934 mpu6500_interface_debug_print("mpu6500: set iic4 data in failed.\n");
4935 (void)mpu6500_deinit(&gs_handle);
4936
4937 return 0;
4938 }
4939 mpu6500_interface_debug_print("mpu6500: set iic4 data in 0x%02X.\n", test);
4940 mpu6500_interface_debug_print("mpu6500: check iic4 data in %s.\n", res == 0 ? "ok" : "error");
4941
4942 /* if spi interface */
4943 if (interface == MPU6500_INTERFACE_SPI)
4944 {
4945 /* mpu6500_set_disable_iic_slave/mpu6500_get_disable_iic_slave test */
4946 mpu6500_interface_debug_print("mpu6500: mpu6500_set_disable_iic_slave/mpu6500_get_disable_iic_slave test.\n");
4947
4948 /* enable iic slave */
4950 if (res != 0)
4951 {
4952 mpu6500_interface_debug_print("mpu6500: set disable iic slave failed.\n");
4953 (void)mpu6500_deinit(&gs_handle);
4954
4955 return 0;
4956 }
4957 mpu6500_interface_debug_print("mpu6500: enable iic slave.\n");
4958 res = mpu6500_get_disable_iic_slave(&gs_handle, &enable);
4959 if (res != 0)
4960 {
4961 mpu6500_interface_debug_print("mpu6500: get disable iic slave failed.\n");
4962 (void)mpu6500_deinit(&gs_handle);
4963
4964 return 0;
4965 }
4966 mpu6500_interface_debug_print("mpu6500: check disable iic slave %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
4967
4968 /* disable iic slave */
4970 if (res != 0)
4971 {
4972 mpu6500_interface_debug_print("mpu6500: set disable iic slave failed.\n");
4973 (void)mpu6500_deinit(&gs_handle);
4974
4975 return 0;
4976 }
4977 mpu6500_interface_debug_print("mpu6500: disable iic slave.\n");
4978 res = mpu6500_get_disable_iic_slave(&gs_handle, &enable);
4979 if (res != 0)
4980 {
4981 mpu6500_interface_debug_print("mpu6500: get disable iic slave failed.\n");
4982 (void)mpu6500_deinit(&gs_handle);
4983
4984 return 0;
4985 }
4986 mpu6500_interface_debug_print("mpu6500: check disable iic slave %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
4987 }
4988
4989 /* mpu6500_set_gyro_standby/mpu6500_get_gyro_standby test */
4990 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyro_standby/mpu6500_get_gyro_standby test.\n");
4991
4992 /* enable gyro standby */
4994 if (res != 0)
4995 {
4996 mpu6500_interface_debug_print("mpu6500: set gyro standby failed.\n");
4997 (void)mpu6500_deinit(&gs_handle);
4998
4999 return 0;
5000 }
5001 mpu6500_interface_debug_print("mpu6500: enable gyro standby.\n");
5002 res = mpu6500_get_gyro_standby(&gs_handle, &enable);
5003 if (res != 0)
5004 {
5005 mpu6500_interface_debug_print("mpu6500: get gyro standby failed.\n");
5006 (void)mpu6500_deinit(&gs_handle);
5007
5008 return 0;
5009 }
5010 mpu6500_interface_debug_print("mpu6500: check gyro standby %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
5011
5012 /* disable gyro standby */
5014 if (res != 0)
5015 {
5016 mpu6500_interface_debug_print("mpu6500: set gyro standby failed.\n");
5017 (void)mpu6500_deinit(&gs_handle);
5018
5019 return 0;
5020 }
5021 mpu6500_interface_debug_print("mpu6500: disable gyro standby.\n");
5022 res = mpu6500_get_gyro_standby(&gs_handle, &enable);
5023 if (res != 0)
5024 {
5025 mpu6500_interface_debug_print("mpu6500: get gyro standby failed.\n");
5026 (void)mpu6500_deinit(&gs_handle);
5027
5028 return 0;
5029 }
5030 mpu6500_interface_debug_print("mpu6500: check gyro standby %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
5031
5032 /* mpu6500_set_fifo_mode/mpu6500_get_fifo_mode test */
5033 mpu6500_interface_debug_print("mpu6500: mpu6500_set_fifo_mode/mpu6500_get_fifo_mode test.\n");
5034
5035 /* set fifo stream mode */
5037 if (res != 0)
5038 {
5039 mpu6500_interface_debug_print("mpu6500: set fifo mode failed.\n");
5040 (void)mpu6500_deinit(&gs_handle);
5041
5042 return 0;
5043 }
5044 mpu6500_interface_debug_print("mpu6500: set fifo stream mode.\n");
5045 res = mpu6500_get_fifo_mode(&gs_handle, &fifo_mode);
5046 if (res != 0)
5047 {
5048 mpu6500_interface_debug_print("mpu6500: get fifo mode failed.\n");
5049 (void)mpu6500_deinit(&gs_handle);
5050
5051 return 0;
5052 }
5053 mpu6500_interface_debug_print("mpu6500: check fifo mode %s.\n", fifo_mode == MPU6500_FIFO_MODE_STREAM ? "ok" : "error");
5054
5055 /* set fifo normal mode */
5057 if (res != 0)
5058 {
5059 mpu6500_interface_debug_print("mpu6500: set fifo mode failed.\n");
5060 (void)mpu6500_deinit(&gs_handle);
5061
5062 return 0;
5063 }
5064 mpu6500_interface_debug_print("mpu6500: set fifo normal mode.\n");
5065 res = mpu6500_get_fifo_mode(&gs_handle, &fifo_mode);
5066 if (res != 0)
5067 {
5068 mpu6500_interface_debug_print("mpu6500: get fifo mode failed.\n");
5069 (void)mpu6500_deinit(&gs_handle);
5070
5071 return 0;
5072 }
5073 mpu6500_interface_debug_print("mpu6500: check fifo mode %s.\n", fifo_mode == MPU6500_FIFO_MODE_NORMAL ? "ok" : "error");
5074
5075 /* mpu6500_set_gyroscope_choice/mpu6500_get_gyroscope_choice test */
5076 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyroscope_choice/mpu6500_get_gyroscope_choice test.\n");
5077
5078 test = rand() % 4;
5079 res = mpu6500_set_gyroscope_choice(&gs_handle, test);
5080 if (res != 0)
5081 {
5082 mpu6500_interface_debug_print("mpu6500: set gyroscope choice failed.\n");
5083 (void)mpu6500_deinit(&gs_handle);
5084
5085 return 0;
5086 }
5087 mpu6500_interface_debug_print("mpu6500: set gyroscope choice 0x%02X.\n", test);
5088 res = mpu6500_get_gyroscope_choice(&gs_handle, &test_check);
5089 if (res != 0)
5090 {
5091 mpu6500_interface_debug_print("mpu6500: get gyroscope choice failed.\n");
5092 (void)mpu6500_deinit(&gs_handle);
5093
5094 return 0;
5095 }
5096 mpu6500_interface_debug_print("mpu6500: check gyroscope choice %s.\n", test_check == test ? "ok" : "error");
5097
5098 /* mpu6500_set_accelerometer_choice/mpu6500_get_accelerometer_choice test */
5099 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_choice/mpu6500_get_accelerometer_choice test.\n");
5100
5101 test = rand() % 2;
5102 res = mpu6500_set_accelerometer_choice(&gs_handle, test);
5103 if (res != 0)
5104 {
5105 mpu6500_interface_debug_print("mpu6500: set accelerometer choice failed.\n");
5106 (void)mpu6500_deinit(&gs_handle);
5107
5108 return 0;
5109 }
5110 mpu6500_interface_debug_print("mpu6500: set accelerometer choice 0x%02X.\n", test);
5111 res = mpu6500_get_accelerometer_choice(&gs_handle, &test_check);
5112 if (res != 0)
5113 {
5114 mpu6500_interface_debug_print("mpu6500: get accelerometer choice failed.\n");
5115 (void)mpu6500_deinit(&gs_handle);
5116
5117 return 0;
5118 }
5119 mpu6500_interface_debug_print("mpu6500: check accelerometer choice %s.\n", test_check == test ? "ok" : "error");
5120
5121 /* mpu6500_set_accelerometer_low_pass_filter/mpu6500_get_accelerometer_low_pass_filter test */
5122 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_low_pass_filter/mpu6500_get_accelerometer_low_pass_filter test.\n");
5123
5124 /* accelerometer low pass filter 0 */
5126 if (res != 0)
5127 {
5128 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5129 (void)mpu6500_deinit(&gs_handle);
5130
5131 return 0;
5132 }
5133 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 0.\n");
5134 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5135 if (res != 0)
5136 {
5137 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5138 (void)mpu6500_deinit(&gs_handle);
5139
5140 return 0;
5141 }
5142 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5143 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_0 ? "ok" : "error");
5144
5145 /* accelerometer low pass filter 1 */
5147 if (res != 0)
5148 {
5149 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5150 (void)mpu6500_deinit(&gs_handle);
5151
5152 return 0;
5153 }
5154 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 1.\n");
5155 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5156 if (res != 0)
5157 {
5158 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5159 (void)mpu6500_deinit(&gs_handle);
5160
5161 return 0;
5162 }
5163 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5164 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_1 ? "ok" : "error");
5165
5166 /* accelerometer low pass filter 2 */
5168 if (res != 0)
5169 {
5170 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5171 (void)mpu6500_deinit(&gs_handle);
5172
5173 return 0;
5174 }
5175 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 2.\n");
5176 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5177 if (res != 0)
5178 {
5179 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5180 (void)mpu6500_deinit(&gs_handle);
5181
5182 return 0;
5183 }
5184 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5185 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_2 ? "ok" : "error");
5186
5187 /* accelerometer low pass filter 3 */
5189 if (res != 0)
5190 {
5191 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5192 (void)mpu6500_deinit(&gs_handle);
5193
5194 return 0;
5195 }
5196 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 3.\n");
5197 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5198 if (res != 0)
5199 {
5200 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5201 (void)mpu6500_deinit(&gs_handle);
5202
5203 return 0;
5204 }
5205 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5206 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_3 ? "ok" : "error");
5207
5208 /* accelerometer low pass filter 4 */
5210 if (res != 0)
5211 {
5212 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5213 (void)mpu6500_deinit(&gs_handle);
5214
5215 return 0;
5216 }
5217 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 4.\n");
5218 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5219 if (res != 0)
5220 {
5221 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5222 (void)mpu6500_deinit(&gs_handle);
5223
5224 return 0;
5225 }
5226 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5227 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_4 ? "ok" : "error");
5228
5229 /* accelerometer low pass filter 5 */
5231 if (res != 0)
5232 {
5233 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5234 (void)mpu6500_deinit(&gs_handle);
5235
5236 return 0;
5237 }
5238 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 5.\n");
5239 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5240 if (res != 0)
5241 {
5242 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5243 (void)mpu6500_deinit(&gs_handle);
5244
5245 return 0;
5246 }
5247 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5248 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_5 ? "ok" : "error");
5249
5250 /* accelerometer low pass filter 6 */
5252 if (res != 0)
5253 {
5254 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5255 (void)mpu6500_deinit(&gs_handle);
5256
5257 return 0;
5258 }
5259 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 6.\n");
5260 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5261 if (res != 0)
5262 {
5263 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5264 (void)mpu6500_deinit(&gs_handle);
5265
5266 return 0;
5267 }
5268 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5269 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_6 ? "ok" : "error");
5270
5271 /* accelerometer low pass filter 7 */
5273 if (res != 0)
5274 {
5275 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
5276 (void)mpu6500_deinit(&gs_handle);
5277
5278 return 0;
5279 }
5280 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter 7.\n");
5281 res = mpu6500_get_accelerometer_low_pass_filter(&gs_handle, &accelerometer_filter);
5282 if (res != 0)
5283 {
5284 mpu6500_interface_debug_print("mpu6500: get accelerometer low pass filter failed.\n");
5285 (void)mpu6500_deinit(&gs_handle);
5286
5287 return 0;
5288 }
5289 mpu6500_interface_debug_print("mpu6500: check accelerometer low pass filter %s.\n",
5290 accelerometer_filter == MPU6500_ACCELEROMETER_LOW_PASS_FILTER_7 ? "ok" : "error");
5291
5292 /* mpu6500_set_low_power_accel_output_rate/mpu6500_get_low_power_accel_output_rate test */
5293 mpu6500_interface_debug_print("mpu6500: mpu6500_set_low_power_accel_output_rate/mpu6500_get_low_power_accel_output_rate test.\n");
5294
5295 /* set 0.24Hz */
5297 if (res != 0)
5298 {
5299 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5300 (void)mpu6500_deinit(&gs_handle);
5301
5302 return 0;
5303 }
5304 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 0.24Hz.\n");
5305 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5306 if (res != 0)
5307 {
5308 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5309 (void)mpu6500_deinit(&gs_handle);
5310
5311 return 0;
5312 }
5313 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5314 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_0P24 ? "ok" : "error");
5315
5316 /* set 0.49Hz */
5318 if (res != 0)
5319 {
5320 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5321 (void)mpu6500_deinit(&gs_handle);
5322
5323 return 0;
5324 }
5325 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 0.49Hz.\n");
5326 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5327 if (res != 0)
5328 {
5329 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5330 (void)mpu6500_deinit(&gs_handle);
5331
5332 return 0;
5333 }
5334 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5335 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_0P49 ? "ok" : "error");
5336
5337 /* set 0.98Hz */
5339 if (res != 0)
5340 {
5341 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5342 (void)mpu6500_deinit(&gs_handle);
5343
5344 return 0;
5345 }
5346 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 0.98Hz.\n");
5347 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5348 if (res != 0)
5349 {
5350 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5351 (void)mpu6500_deinit(&gs_handle);
5352
5353 return 0;
5354 }
5355 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5356 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_0P98 ? "ok" : "error");
5357
5358 /* set 1.95Hz */
5360 if (res != 0)
5361 {
5362 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5363 (void)mpu6500_deinit(&gs_handle);
5364
5365 return 0;
5366 }
5367 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 1.95Hz.\n");
5368 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5369 if (res != 0)
5370 {
5371 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5372 (void)mpu6500_deinit(&gs_handle);
5373
5374 return 0;
5375 }
5376 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5377 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_1P95 ? "ok" : "error");
5378
5379 /* set 3.91Hz */
5381 if (res != 0)
5382 {
5383 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5384 (void)mpu6500_deinit(&gs_handle);
5385
5386 return 0;
5387 }
5388 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 3.91Hz.\n");
5389 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5390 if (res != 0)
5391 {
5392 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5393 (void)mpu6500_deinit(&gs_handle);
5394
5395 return 0;
5396 }
5397 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5398 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_3P91 ? "ok" : "error");
5399
5400 /* set 7.81Hz */
5402 if (res != 0)
5403 {
5404 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5405 (void)mpu6500_deinit(&gs_handle);
5406
5407 return 0;
5408 }
5409 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 7.81Hz.\n");
5410 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5411 if (res != 0)
5412 {
5413 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5414 (void)mpu6500_deinit(&gs_handle);
5415
5416 return 0;
5417 }
5418 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5419 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_7P81 ? "ok" : "error");
5420
5421 /* set 15.63Hz */
5423 if (res != 0)
5424 {
5425 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5426 (void)mpu6500_deinit(&gs_handle);
5427
5428 return 0;
5429 }
5430 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 15.63Hz.\n");
5431 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5432 if (res != 0)
5433 {
5434 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5435 (void)mpu6500_deinit(&gs_handle);
5436
5437 return 0;
5438 }
5439 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5440 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_15P63 ? "ok" : "error");
5441
5442 /* set 31.25Hz */
5444 if (res != 0)
5445 {
5446 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5447 (void)mpu6500_deinit(&gs_handle);
5448
5449 return 0;
5450 }
5451 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 31.25Hz.\n");
5452 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5453 if (res != 0)
5454 {
5455 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5456 (void)mpu6500_deinit(&gs_handle);
5457
5458 return 0;
5459 }
5460 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5461 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_31P25 ? "ok" : "error");
5462
5463 /* set 62.50Hz */
5465 if (res != 0)
5466 {
5467 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5468 (void)mpu6500_deinit(&gs_handle);
5469
5470 return 0;
5471 }
5472 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 62.50Hz.\n");
5473 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5474 if (res != 0)
5475 {
5476 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5477 (void)mpu6500_deinit(&gs_handle);
5478
5479 return 0;
5480 }
5481 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5482 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_62P50 ? "ok" : "error");
5483
5484 /* set 125Hz */
5486 if (res != 0)
5487 {
5488 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5489 (void)mpu6500_deinit(&gs_handle);
5490
5491 return 0;
5492 }
5493 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 125Hz.\n");
5494 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5495 if (res != 0)
5496 {
5497 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5498 (void)mpu6500_deinit(&gs_handle);
5499
5500 return 0;
5501 }
5502 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5503 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_125 ? "ok" : "error");
5504
5505 /* set 250Hz */
5507 if (res != 0)
5508 {
5509 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5510 (void)mpu6500_deinit(&gs_handle);
5511
5512 return 0;
5513 }
5514 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 250Hz.\n");
5515 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5516 if (res != 0)
5517 {
5518 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5519 (void)mpu6500_deinit(&gs_handle);
5520
5521 return 0;
5522 }
5523 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5524 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_250 ? "ok" : "error");
5525
5526 /* set 500Hz */
5528 if (res != 0)
5529 {
5530 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
5531 (void)mpu6500_deinit(&gs_handle);
5532
5533 return 0;
5534 }
5535 mpu6500_interface_debug_print("mpu6500: set low power accel output rate 500Hz.\n");
5536 res = mpu6500_get_low_power_accel_output_rate(&gs_handle, &rate);
5537 if (res != 0)
5538 {
5539 mpu6500_interface_debug_print("mpu6500: get low power accel output rate failed.\n");
5540 (void)mpu6500_deinit(&gs_handle);
5541
5542 return 0;
5543 }
5544 mpu6500_interface_debug_print("mpu6500: check low power accel output rate %s.\n",
5545 rate == MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_500 ? "ok" : "error");
5546
5547 /* mpu6500_set_wake_on_motion/mpu6500_get_wake_on_motion test */
5548 mpu6500_interface_debug_print("mpu6500: mpu6500_set_wake_on_motion/mpu6500_get_wake_on_motion test.\n");
5549
5550 /* enable wake on motion */
5552 if (res != 0)
5553 {
5554 mpu6500_interface_debug_print("mpu6500: set wake on motion failed.\n");
5555 (void)mpu6500_deinit(&gs_handle);
5556
5557 return 0;
5558 }
5559 mpu6500_interface_debug_print("mpu6500: enable wake on motion.\n");
5560 res = mpu6500_get_wake_on_motion(&gs_handle, &enable);
5561 if (res != 0)
5562 {
5563 mpu6500_interface_debug_print("mpu6500: get wake on motion failed.\n");
5564 (void)mpu6500_deinit(&gs_handle);
5565
5566 return 0;
5567 }
5568 mpu6500_interface_debug_print("mpu6500: check wake on motion %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
5569
5570 /* disable wake on motion */
5572 if (res != 0)
5573 {
5574 mpu6500_interface_debug_print("mpu6500: set wake on motion failed.\n");
5575 (void)mpu6500_deinit(&gs_handle);
5576
5577 return 0;
5578 }
5579 mpu6500_interface_debug_print("mpu6500: disable wake on motion.\n");
5580 res = mpu6500_get_wake_on_motion(&gs_handle, &enable);
5581 if (res != 0)
5582 {
5583 mpu6500_interface_debug_print("mpu6500: get wake on motion failed.\n");
5584 (void)mpu6500_deinit(&gs_handle);
5585
5586 return 0;
5587 }
5588 mpu6500_interface_debug_print("mpu6500: check wake on motion %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
5589
5590 /* mpu6500_set_accel_compare_with_previous_sample/mpu6500_get_accel_compare_with_previous_sample test */
5591 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accel_compare_with_previous_sample/mpu6500_get_accel_compare_with_previous_sample test.\n");
5592
5593 /* enable accel compare with previous sample */
5595 if (res != 0)
5596 {
5597 mpu6500_interface_debug_print("mpu6500: set accel compare with previous sample failed.\n");
5598 (void)mpu6500_deinit(&gs_handle);
5599
5600 return 0;
5601 }
5602 mpu6500_interface_debug_print("mpu6500: enable accel compare with previous sample.\n");
5603 res = mpu6500_get_accel_compare_with_previous_sample(&gs_handle, &enable);
5604 if (res != 0)
5605 {
5606 mpu6500_interface_debug_print("mpu6500: get accel compare with previous sample failed.\n");
5607 (void)mpu6500_deinit(&gs_handle);
5608
5609 return 0;
5610 }
5611 mpu6500_interface_debug_print("mpu6500: check accel compare with previous sample %s.\n", enable == MPU6500_BOOL_TRUE ? "ok" : "error");
5612
5613 /* disable accel compare with previous sample */
5615 if (res != 0)
5616 {
5617 mpu6500_interface_debug_print("mpu6500: set accel compare with previous sample failed.\n");
5618 (void)mpu6500_deinit(&gs_handle);
5619
5620 return 0;
5621 }
5622 mpu6500_interface_debug_print("mpu6500: disable accel compare with previous sample.\n");
5623 res = mpu6500_get_accel_compare_with_previous_sample(&gs_handle, &enable);
5624 if (res != 0)
5625 {
5626 mpu6500_interface_debug_print("mpu6500: get accel compare with previous sample failed.\n");
5627 (void)mpu6500_deinit(&gs_handle);
5628
5629 return 0;
5630 }
5631 mpu6500_interface_debug_print("mpu6500: check accel compare with previous sample %s.\n", enable == MPU6500_BOOL_FALSE ? "ok" : "error");
5632
5633 /* mpu6500_set_accelerometer_x_offset/mpu6500_get_accelerometer_x_offset test */
5634 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_x_offset/mpu6500_get_accelerometer_x_offset test.\n");
5635
5636 offset = rand() % 32768;
5637 res = mpu6500_set_accelerometer_x_offset(&gs_handle, offset);
5638 if (res != 0)
5639 {
5640 mpu6500_interface_debug_print("mpu6500: set accelerometer x offset failed.\n");
5641 (void)mpu6500_deinit(&gs_handle);
5642
5643 return 0;
5644 }
5645 mpu6500_interface_debug_print("mpu6500: set accelerometer x offset %d.\n", offset);
5646 res = mpu6500_get_accelerometer_x_offset(&gs_handle, &offset_check);
5647 if (res != 0)
5648 {
5649 mpu6500_interface_debug_print("mpu6500: get accelerometer x offset failed.\n");
5650 (void)mpu6500_deinit(&gs_handle);
5651
5652 return 0;
5653 }
5654 mpu6500_interface_debug_print("mpu6500: check accelerometer x offset %s.\n", offset_check == offset ? "ok" : "error");
5655
5656 /* mpu6500_set_accelerometer_y_offset/mpu6500_get_accelerometer_y_offset test */
5657 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_y_offset/mpu6500_get_accelerometer_y_offset test.\n");
5658
5659 offset = -(rand() % 32768);
5660 res = mpu6500_set_accelerometer_y_offset(&gs_handle, offset);
5661 if (res != 0)
5662 {
5663 mpu6500_interface_debug_print("mpu6500: set accelerometer y offset failed.\n");
5664 (void)mpu6500_deinit(&gs_handle);
5665
5666 return 0;
5667 }
5668 mpu6500_interface_debug_print("mpu6500: set accelerometer y offset %d.\n", offset);
5669 res = mpu6500_get_accelerometer_y_offset(&gs_handle, &offset_check);
5670 if (res != 0)
5671 {
5672 mpu6500_interface_debug_print("mpu6500: get accelerometer y offset failed.\n");
5673 (void)mpu6500_deinit(&gs_handle);
5674
5675 return 0;
5676 }
5677 mpu6500_interface_debug_print("mpu6500: check accelerometer y offset %s.\n", offset_check == offset ? "ok" : "error");
5678
5679 /* mpu6500_set_accelerometer_z_offset/mpu6500_get_accelerometer_z_offset test */
5680 mpu6500_interface_debug_print("mpu6500: mpu6500_set_accelerometer_z_offset/mpu6500_get_accelerometer_z_offset test.\n");
5681
5682 offset = rand() % 32768;
5683 res = mpu6500_set_accelerometer_z_offset(&gs_handle, offset);
5684 if (res != 0)
5685 {
5686 mpu6500_interface_debug_print("mpu6500: set accelerometer z offset failed.\n");
5687 (void)mpu6500_deinit(&gs_handle);
5688
5689 return 0;
5690 }
5691 mpu6500_interface_debug_print("mpu6500: set accelerometer z offset %d.\n", offset);
5692 res = mpu6500_get_accelerometer_z_offset(&gs_handle, &offset_check);
5693 if (res != 0)
5694 {
5695 mpu6500_interface_debug_print("mpu6500: get accelerometer z offset failed.\n");
5696 (void)mpu6500_deinit(&gs_handle);
5697
5698 return 0;
5699 }
5700 mpu6500_interface_debug_print("mpu6500: check accelerometer z offset %s.\n", offset_check == offset ? "ok" : "error");
5701
5702 /* mpu6500_accelerometer_offset_convert_to_register/mpu6500_accelerometer_offset_convert_to_data test */
5703 mpu6500_interface_debug_print("mpu6500: mpu6500_accelerometer_offset_convert_to_register/mpu6500_accelerometer_offset_convert_to_data test.\n");
5704
5705 test_f = (float)(rand() % 1000) / 10.0f;
5706 res = mpu6500_accelerometer_offset_convert_to_register(&gs_handle, test_f, &offset);
5707 if (res != 0)
5708 {
5709 mpu6500_interface_debug_print("mpu6500: accelerometer offset convert to register failed.\n");
5710 (void)mpu6500_deinit(&gs_handle);
5711
5712 return 0;
5713 }
5714 mpu6500_interface_debug_print("mpu6500: accelerometer offset convert to register %0.2f.\n", test_f);
5715 res = mpu6500_accelerometer_offset_convert_to_data(&gs_handle, offset, &test_check_f);
5716 if (res != 0)
5717 {
5718 mpu6500_interface_debug_print("mpu6500: accelerometer offset convert to data failed.\n");
5719 (void)mpu6500_deinit(&gs_handle);
5720
5721 return 0;
5722 }
5723 mpu6500_interface_debug_print("mpu6500: check accelerometer offset %0.2f.\n", test_check_f);
5724
5725 /* mpu6500_set_gyro_x_offset/mpu6500_get_gyro_x_offset test */
5726 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyro_x_offset/mpu6500_get_gyro_x_offset test.\n");
5727
5728 offset = rand() % 32768;
5729 res = mpu6500_set_gyro_x_offset(&gs_handle, offset);
5730 if (res != 0)
5731 {
5732 mpu6500_interface_debug_print("mpu6500: set gyro x offset failed.\n");
5733 (void)mpu6500_deinit(&gs_handle);
5734
5735 return 0;
5736 }
5737 mpu6500_interface_debug_print("mpu6500: set gyro x offset %d.\n", offset);
5738 res = mpu6500_get_gyro_x_offset(&gs_handle, &offset_check);
5739 if (res != 0)
5740 {
5741 mpu6500_interface_debug_print("mpu6500: get gyro x offset failed.\n");
5742 (void)mpu6500_deinit(&gs_handle);
5743
5744 return 0;
5745 }
5746 mpu6500_interface_debug_print("mpu6500: check gyro x offset %s.\n", offset_check == offset ? "ok" : "error");
5747
5748 /* mpu6500_set_gyro_y_offset/mpu6500_get_gyro_y_offset test */
5749 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyro_y_offset/mpu6500_get_gyro_y_offset test.\n");
5750
5751 offset = -(rand() % 32768);
5752 res = mpu6500_set_gyro_y_offset(&gs_handle, offset);
5753 if (res != 0)
5754 {
5755 mpu6500_interface_debug_print("mpu6500: set gyro y offset failed.\n");
5756 (void)mpu6500_deinit(&gs_handle);
5757
5758 return 0;
5759 }
5760 mpu6500_interface_debug_print("mpu6500: set gyro y offset %d.\n", offset);
5761 res = mpu6500_get_gyro_y_offset(&gs_handle, &offset_check);
5762 if (res != 0)
5763 {
5764 mpu6500_interface_debug_print("mpu6500: get gyro y offset failed.\n");
5765 (void)mpu6500_deinit(&gs_handle);
5766
5767 return 0;
5768 }
5769 mpu6500_interface_debug_print("mpu6500: check gyro y offset %s.\n", offset_check == offset ? "ok" : "error");
5770
5771 /* mpu6500_set_gyro_z_offset/mpu6500_get_gyro_z_offset test */
5772 mpu6500_interface_debug_print("mpu6500: mpu6500_set_gyro_z_offset/mpu6500_get_gyro_z_offset test.\n");
5773
5774 offset = rand() % 32768;
5775 res = mpu6500_set_gyro_z_offset(&gs_handle, offset);
5776 if (res != 0)
5777 {
5778 mpu6500_interface_debug_print("mpu6500: set gyro z offset failed.\n");
5779 (void)mpu6500_deinit(&gs_handle);
5780
5781 return 0;
5782 }
5783 mpu6500_interface_debug_print("mpu6500: set gyro z offset %d.\n", offset);
5784 res = mpu6500_get_gyro_z_offset(&gs_handle, &offset_check);
5785 if (res != 0)
5786 {
5787 mpu6500_interface_debug_print("mpu6500: get gyro z offset failed.\n");
5788 (void)mpu6500_deinit(&gs_handle);
5789
5790 return 0;
5791 }
5792 mpu6500_interface_debug_print("mpu6500: check gyro z offset %s.\n", offset_check == offset ? "ok" : "error");
5793
5794 /* mpu6500_gyro_offset_convert_to_register/mpu6500_gyro_offset_convert_to_data test */
5795 mpu6500_interface_debug_print("mpu6500: mpu6500_gyro_offset_convert_to_register/mpu6500_gyro_offset_convert_to_data test.\n");
5796
5797 test_f = (float)(rand() % 1000) / 10.0f;
5798 res = mpu6500_gyro_offset_convert_to_register(&gs_handle, test_f, &offset);
5799 if (res != 0)
5800 {
5801 mpu6500_interface_debug_print("mpu6500: gyro offset convert to register failed.\n");
5802 (void)mpu6500_deinit(&gs_handle);
5803
5804 return 0;
5805 }
5806 mpu6500_interface_debug_print("mpu6500: gyro offset convert to register %0.2f.\n", test_f);
5807 res = mpu6500_gyro_offset_convert_to_data(&gs_handle, offset, &test_check_f);
5808 if (res != 0)
5809 {
5810 mpu6500_interface_debug_print("mpu6500: gyro offset convert to data failed.\n");
5811 (void)mpu6500_deinit(&gs_handle);
5812
5813 return 0;
5814 }
5815 mpu6500_interface_debug_print("mpu6500: check gyro offset %0.2f.\n", test_check_f);
5816
5817 /* finish register test */
5818 mpu6500_interface_debug_print("mpu6500: finish register test.\n");
5819 (void)mpu6500_deinit(&gs_handle);
5820
5821 return 0;
5822}
driver mpu6500 register test header file
uint8_t mpu6500_set_motion_threshold(mpu6500_handle_t *handle, uint8_t threshold)
set the motion_threshold
uint8_t mpu6500_get_gyroscope_y_test(mpu6500_handle_t *handle, uint8_t *data)
get the gyroscope y test
uint8_t mpu6500_get_fsync_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t *level)
get the fsync interrupt level
uint8_t mpu6500_set_ptat(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the temperature sensor
mpu6500_accelerometer_low_pass_filter_t
mpu6500 accelerometer low pass filter enumeration definition
uint8_t mpu6500_set_accelerometer_choice(mpu6500_handle_t *handle, uint8_t choice)
set the accelerometer choice
uint8_t mpu6500_set_iic_address(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t addr_7bit)
set the iic address
uint8_t mpu6500_set_interface(mpu6500_handle_t *handle, mpu6500_interface_t interface)
set the chip interface
mpu6500_address_t
mpu6500 address enumeration definition
uint8_t mpu6500_get_iic_group_order(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_group_order_t *order)
get the iic group order
uint8_t mpu6500_get_gyroscope_x_test(mpu6500_handle_t *handle, uint8_t *data)
get the gyroscope x test
uint8_t mpu6500_set_gyro_standby(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the gyro standby
struct mpu6500_info_s mpu6500_info_t
mpu6500 information structure definition
mpu6500_bool_t
mpu6500 bool enumeration definition
uint8_t mpu6500_set_accelerometer_x_offset(mpu6500_handle_t *handle, int16_t offset)
set the accelerometer x offset
uint8_t mpu6500_get_iic_multi_master(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic multi master status
uint8_t mpu6500_get_low_pass_filter(mpu6500_handle_t *handle, mpu6500_low_pass_filter_t *filter)
get the low pass filter
uint8_t mpu6500_set_iic_multi_master(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable iic multi master
uint8_t mpu6500_fifo_get(mpu6500_handle_t *handle, uint8_t *buf, uint16_t len)
fifo read bytes
uint8_t mpu6500_set_addr_pin(mpu6500_handle_t *handle, mpu6500_address_t addr_pin)
set the chip address pin
uint8_t mpu6500_accelerometer_offset_convert_to_data(mpu6500_handle_t *handle, int16_t reg, float *mg)
convert the register raw data to the accelerometer offset
uint8_t mpu6500_get_accelerometer_x_offset(mpu6500_handle_t *handle, int16_t *offset)
get the accelerometer x offset
uint8_t mpu6500_get_iic4_interrupt(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic4 interrupt status
uint8_t mpu6500_get_gyro_z_offset(mpu6500_handle_t *handle, int16_t *offset)
get the gyro z offset
uint8_t mpu6500_set_iic_wait_for_external_sensor(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable iic wait for external sensor
mpu6500_iic_mode_t
mpu6500 iic mode enumeration definition
uint8_t mpu6500_get_iic_data_out(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *data)
get the iic data out
mpu6500_pin_level_t
mpu6500 pin level enumeration definition
uint8_t mpu6500_set_iic_bypass(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic bypass
uint8_t mpu6500_get_gyroscope_choice(mpu6500_handle_t *handle, uint8_t *choice)
get the gyroscope choice
uint8_t mpu6500_get_interrupt_read_clear(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the interrupt reading clear status
uint8_t mpu6500_set_iic4_data_out(mpu6500_handle_t *handle, uint8_t data)
set the iic4 data out
uint8_t mpu6500_set_accel_compare_with_previous_sample(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable accel compare with previous sample
uint8_t mpu6500_get_accelerometer_z_test(mpu6500_handle_t *handle, uint8_t *data)
get the accelerometer z test
uint8_t mpu6500_set_iic_group_order(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_group_order_t order)
set the iic group order
uint8_t mpu6500_get_iic_register(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *reg)
get the iic register
uint8_t mpu6500_get_accelerometer_range(mpu6500_handle_t *handle, mpu6500_accelerometer_range_t *range)
get the accelerometer range
mpu6500_iic_transaction_mode_t
mpu6500 iic transaction mode enumeration definition
mpu6500_iic_read_mode_t
mpu6500 iic read mode enumeration definition
uint8_t mpu6500_get_iic_bypass(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic bypass status
uint8_t mpu6500_set_accelerometer_y_offset(mpu6500_handle_t *handle, int16_t offset)
set the accelerometer y offset
uint8_t mpu6500_set_accelerometer_z_offset(mpu6500_handle_t *handle, int16_t offset)
set the accelerometer z offset
uint8_t mpu6500_accelerometer_offset_convert_to_register(mpu6500_handle_t *handle, float mg, int16_t *reg)
convert the accelerometer offset to the register raw data
uint8_t mpu6500_set_iic_transaction_mode(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_transaction_mode_t mode)
set the iic transaction mode
uint8_t mpu6500_get_accelerometer_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t *enable)
get the accelerometer test
uint8_t mpu6500_set_fifo(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable fifo
uint8_t mpu6500_get_fifo(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the fifo status
uint8_t mpu6500_get_sleep(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the sleep status
uint8_t mpu6500_get_sample_rate_divider(mpu6500_handle_t *handle, uint8_t *d)
get the sample rate divider
uint8_t mpu6500_get_device_reset(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the device reset status
uint8_t mpu6500_set_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the interrupt level
uint8_t mpu6500_set_iic4_data_in(mpu6500_handle_t *handle, uint8_t data)
set the iic4 data in
uint8_t mpu6500_get_fifo_enable(mpu6500_handle_t *handle, mpu6500_fifo_t fifo, mpu6500_bool_t *enable)
get the fifo function status
uint8_t mpu6500_get_disable_iic_slave(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic slave status
uint8_t mpu6500_get_gyroscope_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t *enable)
get the gyroscope test
mpu6500_clock_source_t
mpu6500 clock source enumeration definition
uint8_t mpu6500_set_fsync_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the fsync interrupt level
uint8_t mpu6500_get_accelerometer_low_pass_filter(mpu6500_handle_t *handle, mpu6500_accelerometer_low_pass_filter_t *filter)
get the accelerometer low pass filter
mpu6500_iic_group_order_t
mpu6500 iic group order enumeration definition
uint8_t mpu6500_get_iic_master_reset(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic master reset status
uint8_t mpu6500_get_iic4_data_out(mpu6500_handle_t *handle, uint8_t *data)
get the iic4 data out
uint8_t mpu6500_set_iic_clock(mpu6500_handle_t *handle, mpu6500_iic_clock_t clk)
set the iic clock
uint8_t mpu6500_get_clock_source(mpu6500_handle_t *handle, mpu6500_clock_source_t *clock_source)
get the chip clock source
mpu6500_gyroscope_range_t
mpu6500 gyroscope range enumeration definition
uint8_t mpu6500_get_wake_on_motion(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the wake on motion status
uint8_t mpu6500_gyro_offset_convert_to_data(mpu6500_handle_t *handle, int16_t reg, float *dps)
convert the register raw data to the gyro offset
uint8_t mpu6500_get_iic_master(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic master status
uint8_t mpu6500_get_accelerometer_y_test(mpu6500_handle_t *handle, uint8_t *data)
get the accelerometer y test
uint8_t mpu6500_get_addr_pin(mpu6500_handle_t *handle, mpu6500_address_t *addr_pin)
get the chip address pin
struct mpu6500_handle_s mpu6500_handle_t
mpu6500 handle structure definition
uint8_t mpu6500_get_iic4_enable(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic4 status
uint8_t mpu6500_set_gyroscope_choice(mpu6500_handle_t *handle, uint8_t choice)
set the gyroscope choice
mpu6500_iic_clock_t
mpu6500 iic clock enumeration definition
uint8_t mpu6500_get_fsync_interrupt(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the fsync interrupt status
uint8_t mpu6500_set_iic_read_mode(mpu6500_handle_t *handle, mpu6500_iic_read_mode_t mode)
set the iic read mode
uint8_t mpu6500_get_cycle_wake_up(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the cycle wake up mode status
uint8_t mpu6500_set_iic_delay(mpu6500_handle_t *handle, uint8_t delay)
set the iic delay
uint8_t mpu6500_get_fifo_count(mpu6500_handle_t *handle, uint16_t *count)
get the fifo counter value
uint8_t mpu6500_get_gyro_x_offset(mpu6500_handle_t *handle, int16_t *offset)
get the gyro x offset
uint8_t mpu6500_set_fsync_interrupt(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the fsync interrupt
uint8_t mpu6500_get_interrupt(mpu6500_handle_t *handle, mpu6500_interrupt_t type, mpu6500_bool_t *enable)
get the interrupt status
uint8_t mpu6500_get_gyroscope_z_test(mpu6500_handle_t *handle, uint8_t *data)
get the gyroscope z test
uint8_t mpu6500_get_accelerometer_z_offset(mpu6500_handle_t *handle, int16_t *offset)
get the accelerometer z offset
uint8_t mpu6500_get_iic_delay_enable(mpu6500_handle_t *handle, mpu6500_iic_delay_t delay, mpu6500_bool_t *enable)
get the iic delay status
uint8_t mpu6500_get_ptat(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the temperature sensor status
uint8_t mpu6500_get_iic_byte_swap(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t *enable)
get the iic byte swap status
uint8_t mpu6500_set_sleep(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the sleep mode
uint8_t mpu6500_set_gyroscope_x_test(mpu6500_handle_t *handle, uint8_t data)
set the gyroscope x test
uint8_t mpu6500_motion_threshold_convert_to_data(mpu6500_handle_t *handle, uint8_t reg, float *mg)
convert the register raw data to the motion threshold
uint8_t mpu6500_sensor_reset(mpu6500_handle_t *handle)
reset all sensors
uint8_t mpu6500_set_interrupt_latch(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt latch
uint8_t mpu6500_get_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t *level)
get the interrupt level
uint8_t mpu6500_get_iic_read_mode(mpu6500_handle_t *handle, mpu6500_iic_read_mode_t *mode)
get the iic read mode
uint8_t mpu6500_get_interface(mpu6500_handle_t *handle, mpu6500_interface_t *interface)
get the chip interface
uint8_t mpu6500_gyro_offset_convert_to_register(mpu6500_handle_t *handle, float dps, int16_t *reg)
convert the gyro offset to the register raw data
uint8_t mpu6500_get_iic_transaction_mode(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_transaction_mode_t *mode)
get the iic transaction mode
uint8_t mpu6500_get_iic_status(mpu6500_handle_t *handle, uint8_t *status)
get the iic status
uint8_t mpu6500_set_gyroscope_range(mpu6500_handle_t *handle, mpu6500_gyroscope_range_t range)
set the gyroscope range
uint8_t mpu6500_get_iic_enable(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t *enable)
get the iic status
uint8_t mpu6500_info(mpu6500_info_t *info)
get the chip's information
uint8_t mpu6500_set_clock_source(mpu6500_handle_t *handle, mpu6500_clock_source_t clock_source)
set the chip clock source
uint8_t mpu6500_get_iic_transferred_len(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *len)
get the iic transferred length
uint8_t mpu6500_get_iic_wait_for_external_sensor(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the iic wait for external sensor status
uint8_t mpu6500_set_wake_on_motion(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable wake on motion
uint8_t mpu6500_set_signal_path_reset(mpu6500_handle_t *handle, mpu6500_signal_path_reset_t path)
set the signal path reset
uint8_t mpu6500_set_gyro_x_offset(mpu6500_handle_t *handle, int16_t offset)
set the gyro x offset
uint8_t mpu6500_get_fifo_reset(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the fifo reset status
uint8_t mpu6500_set_interrupt_read_clear(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt reading clear
uint8_t mpu6500_get_accel_compare_with_previous_sample(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the accel compare with previous sample status
mpu6500_iic4_transaction_mode_t
mpu6500 iic4 transaction mode enumeration definition
uint8_t mpu6500_set_gyro_z_offset(mpu6500_handle_t *handle, int16_t offset)
set the gyro z offset
uint8_t mpu6500_set_gyroscope_z_test(mpu6500_handle_t *handle, uint8_t data)
set the gyroscope z test
mpu6500_fifo_mode
mpu6500 fifo mode enumeration definition
uint8_t mpu6500_set_accelerometer_y_test(mpu6500_handle_t *handle, uint8_t data)
set the accelerometer y test
uint8_t mpu6500_set_iic_byte_swap(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t enable)
enable or disable the iic byte swap
uint8_t mpu6500_get_gyroscope_range(mpu6500_handle_t *handle, mpu6500_gyroscope_range_t *range)
get the gyroscope range
uint8_t mpu6500_set_interrupt(mpu6500_handle_t *handle, mpu6500_interrupt_t type, mpu6500_bool_t enable)
enable or disable the interrupt
uint8_t mpu6500_set_gyro_y_offset(mpu6500_handle_t *handle, int16_t offset)
set the gyro y offset
uint8_t mpu6500_set_iic_transferred_len(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t len)
set the iic transferred length
uint8_t mpu6500_set_fifo_enable(mpu6500_handle_t *handle, mpu6500_fifo_t fifo, mpu6500_bool_t enable)
enable or disable the fifo function
uint8_t mpu6500_set_accelerometer_x_test(mpu6500_handle_t *handle, uint8_t data)
set the accelerometer x test
uint8_t mpu6500_set_iic4_transaction_mode(mpu6500_handle_t *handle, mpu6500_iic4_transaction_mode_t mode)
set the iic4 transaction mode
uint8_t mpu6500_deinit(mpu6500_handle_t *handle)
close the chip
uint8_t mpu6500_iic_master_reset(mpu6500_handle_t *handle)
reset the iic master controller
uint8_t mpu6500_get_accelerometer_y_offset(mpu6500_handle_t *handle, int16_t *offset)
get the accelerometer y offset
uint8_t mpu6500_set_low_pass_filter(mpu6500_handle_t *handle, mpu6500_low_pass_filter_t filter)
set the low pass filter
uint8_t mpu6500_get_accelerometer_x_test(mpu6500_handle_t *handle, uint8_t *data)
get the accelerometer x test
uint8_t mpu6500_get_motion_threshold(mpu6500_handle_t *handle, uint8_t *threshold)
get the motion_threshold
mpu6500_extern_sync_t
mpu6500 extern sync enumeration definition
uint8_t mpu6500_get_iic_address(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *addr_7bit)
get the iic address
uint8_t mpu6500_set_extern_sync(mpu6500_handle_t *handle, mpu6500_extern_sync_t sync)
set the extern sync type
uint8_t mpu6500_set_low_power_accel_output_rate(mpu6500_handle_t *handle, mpu6500_low_power_accel_output_rate_t rate)
set the low power accel output rate
uint8_t mpu6500_get_low_power_accel_output_rate(mpu6500_handle_t *handle, mpu6500_low_power_accel_output_rate_t *rate)
get the low power accel output rate
uint8_t mpu6500_set_iic_mode(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_mode_t mode)
set the iic mode
uint8_t mpu6500_get_iic_fifo_enable(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t *enable)
get the iic fifo status
uint8_t mpu6500_get_iic4_transaction_mode(mpu6500_handle_t *handle, mpu6500_iic4_transaction_mode_t *mode)
get the iic4 transaction mode
uint8_t mpu6500_set_iic4_enable(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic4
uint8_t mpu6500_get_iic_delay(mpu6500_handle_t *handle, uint8_t *delay)
get the iic delay
mpu6500_low_power_accel_output_rate_t
mpu6500 low power accel output rate enumeration definition
uint8_t mpu6500_get_sensor_reset(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the sensor reset status
uint8_t mpu6500_set_iic4_interrupt(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic4 interrupt
uint8_t mpu6500_set_iic_register(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t reg)
set the iic register
uint8_t mpu6500_set_fifo_mode(mpu6500_handle_t *handle, mpu6500_fifo_mode mode)
set the fifo mode
uint8_t mpu6500_set_disable_iic_slave(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic slave mode
uint8_t mpu6500_get_gyro_standby(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the gyro standby status
uint8_t mpu6500_set_iic_master(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic master mode
uint8_t mpu6500_set_cycle_wake_up(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the cycle wake up mode
uint8_t mpu6500_get_fifo_mode(mpu6500_handle_t *handle, mpu6500_fifo_mode *mode)
get the fifo mode
mpu6500_accelerometer_range_t
mpu6500 accelerometer range enumeration definition
uint8_t mpu6500_motion_threshold_convert_to_register(mpu6500_handle_t *handle, float mg, uint8_t *reg)
convert the motion threshold to the register raw data
uint8_t mpu6500_init(mpu6500_handle_t *handle)
initialize the chip
uint8_t mpu6500_set_accelerometer_range(mpu6500_handle_t *handle, mpu6500_accelerometer_range_t range)
set the accelerometer range
uint8_t mpu6500_set_accelerometer_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
set the accelerometer test
uint8_t mpu6500_set_iic_fifo_enable(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t enable)
enable or disable the iic fifo
uint8_t mpu6500_fifo_reset(mpu6500_handle_t *handle)
reset the fifo
uint8_t mpu6500_get_interrupt_latch(mpu6500_handle_t *handle, mpu6500_bool_t *enable)
get the interrupt latch status
uint8_t mpu6500_get_extern_sync(mpu6500_handle_t *handle, mpu6500_extern_sync_t *sync)
get the extern sync type
uint8_t mpu6500_get_gyro_y_offset(mpu6500_handle_t *handle, int16_t *offset)
get the gyro y offset
uint8_t mpu6500_device_reset(mpu6500_handle_t *handle)
reset the chip
uint8_t mpu6500_set_gyroscope_y_test(mpu6500_handle_t *handle, uint8_t data)
set the gyroscope y test
uint8_t mpu6500_get_iic_clock(mpu6500_handle_t *handle, mpu6500_iic_clock_t *clk)
get the iic clock
uint8_t mpu6500_get_interrupt_pin_type(mpu6500_handle_t *handle, mpu6500_pin_type_t *type)
get the interrupt pin type
uint8_t mpu6500_get_standby_mode(mpu6500_handle_t *handle, mpu6500_source_t source, mpu6500_bool_t *enable)
get the source mode
uint8_t mpu6500_set_accelerometer_z_test(mpu6500_handle_t *handle, uint8_t data)
set the accelerometer z test
mpu6500_pin_type_t
mpu6500 pin type enumeration definition
uint8_t mpu6500_set_iic_data_out(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t data)
set the iic data out
mpu6500_interface_t
mpu6500 interface enumeration definition
uint8_t mpu6500_get_accelerometer_choice(mpu6500_handle_t *handle, uint8_t *choice)
get the accelerometer choice
uint8_t mpu6500_set_iic_delay_enable(mpu6500_handle_t *handle, mpu6500_iic_delay_t delay, mpu6500_bool_t enable)
enable or disable the iic delay
uint8_t mpu6500_set_fifo_1024kb(mpu6500_handle_t *handle)
set fifo 1024kb
uint8_t mpu6500_set_standby_mode(mpu6500_handle_t *handle, mpu6500_source_t source, mpu6500_bool_t enable)
set source into standby mode
uint8_t mpu6500_get_iic_mode(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_mode_t *mode)
get the iic mode
uint8_t mpu6500_fifo_set(mpu6500_handle_t *handle, uint8_t *buf, uint16_t len)
fifo write bytes
uint8_t mpu6500_set_accelerometer_low_pass_filter(mpu6500_handle_t *handle, mpu6500_accelerometer_low_pass_filter_t filter)
set the accelerometer low pass filter
uint8_t mpu6500_get_interrupt_status(mpu6500_handle_t *handle, uint8_t *status)
get the interrupt status
mpu6500_low_pass_filter_t
mpu6500 low pass filter enumeration definition
uint8_t mpu6500_set_interrupt_pin_type(mpu6500_handle_t *handle, mpu6500_pin_type_t type)
set the interrupt pin type
uint8_t mpu6500_set_gyroscope_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
set the gyroscope test
uint8_t mpu6500_set_iic_enable(mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t enable)
enable or disable the iic
uint8_t mpu6500_set_sample_rate_divider(mpu6500_handle_t *handle, uint8_t d)
set the sample rate divider
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_2
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_4
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_5
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_6
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_1
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_0
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_3
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_7
@ MPU6500_ADDRESS_AD0_LOW
@ MPU6500_ADDRESS_AD0_HIGH
@ MPU6500_BOOL_FALSE
@ MPU6500_BOOL_TRUE
@ MPU6500_IIC_MODE_WRITE
@ MPU6500_IIC_MODE_READ
@ MPU6500_PIN_LEVEL_LOW
@ MPU6500_PIN_LEVEL_HIGH
@ MPU6500_INTERRUPT_DATA_READY
@ MPU6500_INTERRUPT_FIFO_OVERFLOW
@ MPU6500_INTERRUPT_MOTION
@ MPU6500_INTERRUPT_FSYNC_INT
@ MPU6500_INTERRUPT_DMP
@ MPU6500_IIC_TRANSACTION_MODE_REG_DATA
@ MPU6500_IIC_TRANSACTION_MODE_DATA
@ MPU6500_IIC_READ_MODE_STOP_AND_START
@ MPU6500_IIC_READ_MODE_RESTART
@ MPU6500_CLOCK_SOURCE_PLL
@ MPU6500_CLOCK_SOURCE_INTERNAL_20MHZ
@ MPU6500_CLOCK_SOURCE_STOP_CLOCK
@ MPU6500_IIC_GROUP_ORDER_ODD
@ MPU6500_IIC_GROUP_ORDER_EVEN
@ MPU6500_GYROSCOPE_RANGE_1000DPS
@ MPU6500_GYROSCOPE_RANGE_500DPS
@ MPU6500_GYROSCOPE_RANGE_2000DPS
@ MPU6500_GYROSCOPE_RANGE_250DPS
@ MPU6500_SOURCE_ACC_Y
@ MPU6500_SOURCE_GYRO_X
@ MPU6500_SOURCE_GYRO_Y
@ MPU6500_SOURCE_ACC_X
@ MPU6500_SOURCE_ACC_Z
@ MPU6500_SOURCE_GYRO_Z
@ MPU6500_IIC_CLOCK_500_KHZ
@ MPU6500_IIC_CLOCK_421_KHZ
@ MPU6500_IIC_CLOCK_276_KHZ
@ MPU6500_IIC_CLOCK_333_KHZ
@ MPU6500_IIC_CLOCK_267_KHZ
@ MPU6500_IIC_CLOCK_471_KHZ
@ MPU6500_IIC_CLOCK_308_KHZ
@ MPU6500_IIC_CLOCK_258_KHZ
@ MPU6500_IIC_CLOCK_286_KHZ
@ MPU6500_IIC_CLOCK_296_KHZ
@ MPU6500_IIC_CLOCK_320_KHZ
@ MPU6500_IIC_CLOCK_444_KHZ
@ MPU6500_IIC_CLOCK_348_KHZ
@ MPU6500_IIC_CLOCK_364_KHZ
@ MPU6500_IIC_CLOCK_400_KHZ
@ MPU6500_IIC_CLOCK_381_KHZ
@ MPU6500_IIC_DELAY_SLAVE_1
@ MPU6500_IIC_DELAY_SLAVE_2
@ MPU6500_IIC_DELAY_ES_SHADOW
@ MPU6500_IIC_DELAY_SLAVE_3
@ MPU6500_IIC_DELAY_SLAVE_0
@ MPU6500_IIC_DELAY_SLAVE_4
@ MPU6500_AXIS_Y
@ MPU6500_AXIS_Z
@ MPU6500_AXIS_X
@ MPU6500_IIC_SLAVE_4
@ MPU6500_IIC_SLAVE_1
@ MPU6500_IIC_SLAVE_2
@ MPU6500_IIC_SLAVE_0
@ MPU6500_IIC_SLAVE_3
@ MPU6500_IIC4_TRANSACTION_MODE_REG
@ MPU6500_IIC4_TRANSACTION_MODE_DATA
@ MPU6500_FIFO_MODE_NORMAL
@ MPU6500_FIFO_MODE_STREAM
@ MPU6500_SIGNAL_PATH_RESET_ACCEL
@ MPU6500_SIGNAL_PATH_RESET_TEMP
@ MPU6500_SIGNAL_PATH_RESET_GYRO
@ MPU6500_EXTERN_SYNC_TEMP_OUT_L
@ MPU6500_EXTERN_SYNC_GYRO_XOUT_L
@ MPU6500_EXTERN_SYNC_ACCEL_YOUT_L
@ MPU6500_EXTERN_SYNC_GYRO_YOUT_L
@ MPU6500_EXTERN_SYNC_ACCEL_ZOUT_L
@ MPU6500_EXTERN_SYNC_GYRO_ZOUT_L
@ MPU6500_EXTERN_SYNC_INPUT_DISABLED
@ MPU6500_EXTERN_SYNC_ACCEL_XOUT_L
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_7P81
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_0P98
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_31P25
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_3P91
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_500
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_250
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_62P50
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_0P24
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_125
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_15P63
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_0P49
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_1P95
@ MPU6500_FIFO_TEMP
@ MPU6500_FIFO_YG
@ MPU6500_FIFO_ZG
@ MPU6500_FIFO_ACCEL
@ MPU6500_FIFO_XG
@ MPU6500_ACCELEROMETER_RANGE_2G
@ MPU6500_ACCELEROMETER_RANGE_8G
@ MPU6500_ACCELEROMETER_RANGE_16G
@ MPU6500_ACCELEROMETER_RANGE_4G
@ MPU6500_PIN_TYPE_PUSH_PULL
@ MPU6500_PIN_TYPE_OPEN_DRAIN
@ MPU6500_INTERFACE_IIC
@ MPU6500_INTERFACE_SPI
@ MPU6500_LOW_PASS_FILTER_5
@ MPU6500_LOW_PASS_FILTER_1
@ MPU6500_LOW_PASS_FILTER_6
@ MPU6500_LOW_PASS_FILTER_2
@ MPU6500_LOW_PASS_FILTER_3
@ MPU6500_LOW_PASS_FILTER_4
@ MPU6500_LOW_PASS_FILTER_0
uint8_t mpu6500_interface_spi_deinit(void)
interface spi bus deinit
void mpu6500_interface_delay_ms(uint32_t ms)
interface delay ms
void mpu6500_interface_receive_callback(uint8_t type)
interface receive callback
uint8_t mpu6500_interface_iic_init(void)
interface iic bus init
uint8_t mpu6500_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t mpu6500_interface_iic_deinit(void)
interface iic bus deinit
uint8_t mpu6500_interface_spi_init(void)
interface spi bus init
uint8_t mpu6500_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
void mpu6500_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t mpu6500_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t mpu6500_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t mpu6500_register_test(mpu6500_interface_t interface, mpu6500_address_t addr)
register test
uint32_t driver_version
char manufacturer_name[32]