LibDriver MPU6500
Loading...
Searching...
No Matches
driver_mpu6500_fifo.c
Go to the documentation of this file.
1
36
37#include "driver_mpu6500_fifo.h"
38
39static mpu6500_handle_t gs_handle;
40
49{
50 if (mpu6500_irq_handler(&gs_handle) != 0)
51 {
52 return 1;
53 }
54
55 return 0;
56}
57
68{
69 uint8_t res;
70
71 /* link interface function */
84
85 /* set the interface */
86 res = mpu6500_set_interface(&gs_handle, interface);
87 if (res != 0)
88 {
89 mpu6500_interface_debug_print("mpu6500: set interface failed.\n");
90
91 return 1;
92 }
93
94 /* set the addr pin */
95 res = mpu6500_set_addr_pin(&gs_handle, addr_pin);
96 if (res != 0)
97 {
98 mpu6500_interface_debug_print("mpu6500: set addr pin failed.\n");
99
100 return 1;
101 }
102
103 /* init */
104 res = mpu6500_init(&gs_handle);
105 if (res != 0)
106 {
107 mpu6500_interface_debug_print("mpu6500: init failed.\n");
108
109 return 1;
110 }
111
112 /* delay 100 ms */
114
115 /* disable sleep */
116 res = mpu6500_set_sleep(&gs_handle, MPU6500_BOOL_FALSE);
117 if (res != 0)
118 {
119 mpu6500_interface_debug_print("mpu6500: set sleep failed.\n");
120 (void)mpu6500_deinit(&gs_handle);
121
122 return 1;
123 }
124
125 /* if spi interface, disable iic interface */
126 if (interface == MPU6500_INTERFACE_SPI)
127 {
128 /* disable iic */
130 if (res != 0)
131 {
132 mpu6500_interface_debug_print("mpu6500: set disable iic slave failed.\n");
133 (void)mpu6500_deinit(&gs_handle);
134
135 return 1;
136 }
137 }
138
139 /* set fifo 1024kb */
140 res = mpu6500_set_fifo_1024kb(&gs_handle);
141 if (res != 0)
142 {
143 mpu6500_interface_debug_print("mpu6500: set fifo 1024kb failed.\n");
144 (void)mpu6500_deinit(&gs_handle);
145
146 return 1;
147 }
148
149 /* set the default clock source */
151 if (res != 0)
152 {
153 mpu6500_interface_debug_print("mpu6500: set clock source failed.\n");
154 (void)mpu6500_deinit(&gs_handle);
155
156 return 1;
157 }
158
159 /* set the default rate */
160 res = mpu6500_set_sample_rate_divider(&gs_handle, (1000 / MPU6500_FIFO_DEFAULT_RATE) - 1);
161 if (res != 0)
162 {
163 mpu6500_interface_debug_print("mpu6500: set sample rate divider failed.\n");
164 (void)mpu6500_deinit(&gs_handle);
165
166 return 1;
167 }
168
169 /* set the default accelerometer range */
171 if (res != 0)
172 {
173 mpu6500_interface_debug_print("mpu6500: set accelerometer range failed.\n");
174 (void)mpu6500_deinit(&gs_handle);
175
176 return 1;
177 }
178
179 /* set the default gyroscope range */
181 if (res != 0)
182 {
183 mpu6500_interface_debug_print("mpu6500: set gyroscope range failed.\n");
184 (void)mpu6500_deinit(&gs_handle);
185
186 return 1;
187 }
188
189 /* enable temperature sensor */
190 res = mpu6500_set_ptat(&gs_handle, MPU6500_BOOL_TRUE);
191 if (res != 0)
192 {
193 mpu6500_interface_debug_print("mpu6500: set ptat failed.\n");
194 (void)mpu6500_deinit(&gs_handle);
195
196 return 1;
197 }
198
199 /* set the default wake up */
201 if (res != 0)
202 {
203 mpu6500_interface_debug_print("mpu6500: set cycle wake up failed.\n");
204 (void)mpu6500_deinit(&gs_handle);
205
206 return 1;
207 }
208
209 /* enable acc x */
211 if (res != 0)
212 {
213 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
214 (void)mpu6500_deinit(&gs_handle);
215
216 return 1;
217 }
218
219 /* enable acc y */
221 if (res != 0)
222 {
223 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
224 (void)mpu6500_deinit(&gs_handle);
225
226 return 1;
227 }
228
229 /* enable acc z */
231 if (res != 0)
232 {
233 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
234 (void)mpu6500_deinit(&gs_handle);
235
236 return 1;
237 }
238
239 /* enable gyro x */
241 if (res != 0)
242 {
243 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
244 (void)mpu6500_deinit(&gs_handle);
245
246 return 1;
247 }
248
249 /* enable gyro y */
251 if (res != 0)
252 {
253 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
254 (void)mpu6500_deinit(&gs_handle);
255
256 return 1;
257 }
258
259 /* enable gyro z */
261 if (res != 0)
262 {
263 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
264 (void)mpu6500_deinit(&gs_handle);
265
266 return 1;
267 }
268
269 /* disable gyroscope x test */
271 if (res != 0)
272 {
273 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
274 (void)mpu6500_deinit(&gs_handle);
275
276 return 1;
277 }
278
279 /* disable gyroscope y test */
281 if (res != 0)
282 {
283 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
284 (void)mpu6500_deinit(&gs_handle);
285
286 return 1;
287 }
288
289 /* disable gyroscope z test */
291 if (res != 0)
292 {
293 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
294 (void)mpu6500_deinit(&gs_handle);
295
296 return 1;
297 }
298
299 /* disable accelerometer x test */
301 if (res != 0)
302 {
303 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
304 (void)mpu6500_deinit(&gs_handle);
305
306 return 1;
307 }
308
309 /* disable accelerometer y test */
311 if (res != 0)
312 {
313 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
314 (void)mpu6500_deinit(&gs_handle);
315
316 return 1;
317 }
318
319 /* disable accelerometer z test */
321 if (res != 0)
322 {
323 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
324 (void)mpu6500_deinit(&gs_handle);
325
326 return 1;
327 }
328
329 /* disable temp fifo */
331 if (res != 0)
332 {
333 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
334 (void)mpu6500_deinit(&gs_handle);
335
336 return 1;
337 }
338
339 /* enable xg fifo */
341 if (res != 0)
342 {
343 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
344 (void)mpu6500_deinit(&gs_handle);
345
346 return 1;
347 }
348
349 /* enable yg fifo */
351 if (res != 0)
352 {
353 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
354 (void)mpu6500_deinit(&gs_handle);
355
356 return 1;
357 }
358
359 /* enable zg fifo */
361 if (res != 0)
362 {
363 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
364 (void)mpu6500_deinit(&gs_handle);
365
366 return 1;
367 }
368
369 /* enable accel fifo */
371 if (res != 0)
372 {
373 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
374 (void)mpu6500_deinit(&gs_handle);
375
376 return 1;
377 }
378
379 /* set the default interrupt level */
381 if (res != 0)
382 {
383 mpu6500_interface_debug_print("mpu6500: set interrupt level failed.\n");
384 (void)mpu6500_deinit(&gs_handle);
385
386 return 1;
387 }
388
389 /* set the default interrupt pin type */
391 if (res != 0)
392 {
393 mpu6500_interface_debug_print("mpu6500: set interrupt pin type failed.\n");
394 (void)mpu6500_deinit(&gs_handle);
395
396 return 1;
397 }
398
399 /* set the default motion */
401 if (res != 0)
402 {
403 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
404 (void)mpu6500_deinit(&gs_handle);
405
406 return 1;
407 }
408
409 /* set the default fifo overflow */
411 if (res != 0)
412 {
413 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
414 (void)mpu6500_deinit(&gs_handle);
415
416 return 1;
417 }
418
419 /* set the default dmp interrupt */
421 if (res != 0)
422 {
423 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
424 (void)mpu6500_deinit(&gs_handle);
425
426 return 1;
427 }
428
429 /* set the default fsync int */
431 if (res != 0)
432 {
433 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
434 (void)mpu6500_deinit(&gs_handle);
435
436 return 1;
437 }
438
439 /* set the default data ready */
441 if (res != 0)
442 {
443 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
444 (void)mpu6500_deinit(&gs_handle);
445
446 return 1;
447 }
448
449 /* set the default latch */
451 if (res != 0)
452 {
453 mpu6500_interface_debug_print("mpu6500: set interrupt latch failed.\n");
454 (void)mpu6500_deinit(&gs_handle);
455
456 return 1;
457 }
458
459 /* set the default interrupt read clear */
461 if (res != 0)
462 {
463 mpu6500_interface_debug_print("mpu6500: set interrupt read clear failed.\n");
464 (void)mpu6500_deinit(&gs_handle);
465
466 return 1;
467 }
468
469 /* set the default extern sync */
471 if (res != 0)
472 {
473 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
474 (void)mpu6500_deinit(&gs_handle);
475
476 return 1;
477 }
478
479 /* set the default fsync interrupt */
481 if (res != 0)
482 {
483 mpu6500_interface_debug_print("mpu6500: set fsync interrupt failed.\n");
484 (void)mpu6500_deinit(&gs_handle);
485
486 return 1;
487 }
488
489 /* set the default fsync interrupt level */
491 if (res != 0)
492 {
493 mpu6500_interface_debug_print("mpu6500: set fsync interrupt level failed.\n");
494 (void)mpu6500_deinit(&gs_handle);
495
496 return 1;
497 }
498
499 /* set the default iic master */
501 if (res != 0)
502 {
503 mpu6500_interface_debug_print("mpu6500: set iic master failed.\n");
504 (void)mpu6500_deinit(&gs_handle);
505
506 return 1;
507 }
508
509 /* set the default iic bypass */
511 if (res != 0)
512 {
513 mpu6500_interface_debug_print("mpu6500: set iic bypass failed.\n");
514 (void)mpu6500_deinit(&gs_handle);
515
516 return 1;
517 }
518
519 /* set the default gyro standby */
521 if (res != 0)
522 {
523 mpu6500_interface_debug_print("mpu6500: set gyro standby failed.\n");
524 (void)mpu6500_deinit(&gs_handle);
525
526 return 1;
527 }
528
529 /* set the default fifo mode */
531 if (res != 0)
532 {
533 mpu6500_interface_debug_print("mpu6500: set fifo mode failed.\n");
534 (void)mpu6500_deinit(&gs_handle);
535
536 return 1;
537 }
538
539 /* set the default gyroscope choice */
541 if (res != 0)
542 {
543 mpu6500_interface_debug_print("mpu6500: set gyroscope choice failed.\n");
544 (void)mpu6500_deinit(&gs_handle);
545
546 return 1;
547 }
548
549 /* set the default low pass filter */
551 if (res != 0)
552 {
553 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
554 (void)mpu6500_deinit(&gs_handle);
555
556 return 1;
557 }
558
559 /* set the default accelerometer choice */
561 if (res != 0)
562 {
563 mpu6500_interface_debug_print("mpu6500: set accelerometer choice failed.\n");
564 (void)mpu6500_deinit(&gs_handle);
565
566 return 1;
567 }
568
569 /* set the default accelerometer low pass filter */
571 if (res != 0)
572 {
573 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
574 (void)mpu6500_deinit(&gs_handle);
575
576 return 1;
577 }
578
579 /* set the default low power accel output rate */
581 if (res != 0)
582 {
583 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
584 (void)mpu6500_deinit(&gs_handle);
585
586 return 1;
587 }
588
589 /* set the default wake on motion */
591 if (res != 0)
592 {
593 mpu6500_interface_debug_print("mpu6500: set wake on motion failed.\n");
594 (void)mpu6500_deinit(&gs_handle);
595
596 return 1;
597 }
598
599 /* set the default accel compare with previous sample */
601 if (res != 0)
602 {
603 mpu6500_interface_debug_print("mpu6500: set accel compare with previous sample failed.\n");
604 (void)mpu6500_deinit(&gs_handle);
605
606 return 1;
607 }
608
609 /* enable fifo */
610 res = mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_TRUE);
611 if (res != 0)
612 {
613 mpu6500_interface_debug_print("mpu6500: set fifo failed.\n");
614 (void)mpu6500_deinit(&gs_handle);
615
616 return 1;
617 }
618
619 /* force fifo reset */
620 res = mpu6500_force_fifo_reset(&gs_handle);
621 if (res != 0)
622 {
623 mpu6500_interface_debug_print("mpu6500: force fifo reset failed.\n");
624 if (interface == MPU6500_INTERFACE_IIC)
625 {
626 (void)mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_FALSE);
627 }
628 (void)mpu6500_deinit(&gs_handle);
629
630 return 1;
631 }
632
633 return 0;
634}
635
648uint8_t mpu6500_fifo_read(int16_t (*accel_raw)[3], float (*accel_g)[3],
649 int16_t (*gyro_raw)[3], float (*gyro_dps)[3],
650 uint16_t *len
651 )
652{
653 /* fifo read */
654 if (mpu6500_read(&gs_handle, accel_raw, accel_g,
655 gyro_raw, gyro_dps, len) != 0)
656 {
657 return 1;
658 }
659
660 return 0;
661}
662
671{
672 /* deinit */
673 if (mpu6500_deinit(&gs_handle) != 0)
674 {
675 return 1;
676 }
677
678 return 0;
679}
driver mpu6500 fifo header file
uint8_t mpu6500_set_ptat(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the temperature sensor
uint8_t mpu6500_set_accelerometer_choice(mpu6500_handle_t *handle, uint8_t choice)
set the accelerometer choice
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_set_gyro_standby(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the gyro standby
uint8_t mpu6500_set_addr_pin(mpu6500_handle_t *handle, mpu6500_address_t addr_pin)
set the chip address pin
uint8_t mpu6500_set_iic_bypass(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic bypass
uint8_t mpu6500_force_fifo_reset(mpu6500_handle_t *handle)
force reset the fifo
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_set_fifo(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable fifo
uint8_t mpu6500_set_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the interrupt level
uint8_t mpu6500_set_fsync_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the fsync interrupt level
uint8_t mpu6500_read(mpu6500_handle_t *handle, int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], uint16_t *len)
read the data
struct mpu6500_handle_s mpu6500_handle_t
mpu6500 handle structure definition
uint8_t mpu6500_set_gyroscope_choice(mpu6500_handle_t *handle, uint8_t choice)
set the gyroscope choice
uint8_t mpu6500_set_fsync_interrupt(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the fsync interrupt
uint8_t mpu6500_set_sleep(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the sleep mode
uint8_t mpu6500_set_interrupt_latch(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt latch
uint8_t mpu6500_set_gyroscope_range(mpu6500_handle_t *handle, mpu6500_gyroscope_range_t range)
set the gyroscope range
uint8_t mpu6500_set_clock_source(mpu6500_handle_t *handle, mpu6500_clock_source_t clock_source)
set the chip clock source
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_interrupt_read_clear(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt reading clear
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_fifo_enable(mpu6500_handle_t *handle, mpu6500_fifo_t fifo, mpu6500_bool_t enable)
enable or disable the fifo function
uint8_t mpu6500_deinit(mpu6500_handle_t *handle)
close the chip
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_irq_handler(mpu6500_handle_t *handle)
irq handler
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_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_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_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
mpu6500_interface_t
mpu6500 interface enumeration definition
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_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_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_sample_rate_divider(mpu6500_handle_t *handle, uint8_t d)
set the sample rate divider
@ MPU6500_BOOL_FALSE
@ MPU6500_BOOL_TRUE
@ MPU6500_INTERRUPT_DATA_READY
@ MPU6500_INTERRUPT_FIFO_OVERFLOW
@ MPU6500_INTERRUPT_MOTION
@ MPU6500_INTERRUPT_FSYNC_INT
@ MPU6500_INTERRUPT_DMP
@ 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_AXIS_Y
@ MPU6500_AXIS_Z
@ MPU6500_AXIS_X
@ MPU6500_FIFO_TEMP
@ MPU6500_FIFO_YG
@ MPU6500_FIFO_ZG
@ MPU6500_FIFO_ACCEL
@ MPU6500_FIFO_XG
@ MPU6500_INTERFACE_IIC
@ MPU6500_INTERFACE_SPI
#define MPU6500_FIFO_DEFAULT_ACCELEROMETER_CHOICE
#define MPU6500_FIFO_DEFAULT_INTERRUPT_DATA_READY
#define MPU6500_FIFO_DEFAULT_IIC_BYPASS
#define MPU6500_FIFO_DEFAULT_INTERRUPT_PIN_TYPE
#define MPU6500_FIFO_DEFAULT_CLOCK_SOURCE
mpu6500 fifo example default definition
#define MPU6500_FIFO_DEFAULT_GYROSCOPE_CHOICE
#define MPU6500_FIFO_DEFAULT_INTERRUPT_FSYNC_INT
#define MPU6500_FIFO_DEFAULT_INTERRUPT_FIFO_OVERFLOW
#define MPU6500_FIFO_DEFAULT_INTERRUPT_PIN_LEVEL
uint8_t mpu6500_fifo_irq_handler(void)
fifo irq
#define MPU6500_FIFO_DEFAULT_GYROSCOPE_RANGE
#define MPU6500_FIFO_DEFAULT_INTERRUPT_LATCH
#define MPU6500_FIFO_DEFAULT_FSYNC_INTERRUPT
uint8_t mpu6500_fifo_init(mpu6500_interface_t interface, mpu6500_address_t addr_pin)
fifo example init
#define MPU6500_FIFO_DEFAULT_GYROSCOPE_STANDBY
#define MPU6500_FIFO_DEFAULT_INTERRUPT_READ_CLEAR
#define MPU6500_FIFO_DEFAULT_ACCELEROMETER_COMPARE
#define MPU6500_FIFO_DEFAULT_RATE
#define MPU6500_FIFO_DEFAULT_FIFO_MODE
#define MPU6500_FIFO_DEFAULT_INTERRUPT_DMP
#define MPU6500_FIFO_DEFAULT_ACCELEROMETER_RANGE
#define MPU6500_FIFO_DEFAULT_INTERRUPT_MOTION
#define MPU6500_FIFO_DEFAULT_LOW_POWER_ACCEL_OUTPUT_RATE
#define MPU6500_FIFO_DEFAULT_EXTERN_SYNC
#define MPU6500_FIFO_DEFAULT_IIC_MASTER
#define MPU6500_FIFO_DEFAULT_FSYNC_INTERRUPT_LEVEL
#define MPU6500_FIFO_DEFAULT_LOW_PASS_FILTER
#define MPU6500_FIFO_DEFAULT_ACCELEROMETER_LOW_PASS_FILTER
#define MPU6500_FIFO_DEFAULT_CYCLE_WAKE_UP
#define MPU6500_FIFO_DEFAULT_WAKE_ON_MOTION
uint8_t mpu6500_fifo_read(int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], uint16_t *len)
fifo example read
uint8_t mpu6500_fifo_deinit(void)
fifo example deinit
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