It is modified accordingly to work with sparkfun dmp library under mbed platform

Dependents:   MPU9250-dmp-bluepill MPU9250-dmp

Fork of MotionDriver_6_1 by Prosper Van

Committer:
mbedoguz
Date:
Mon Aug 07 13:49:51 2017 +0000
Revision:
1:a6c3f8680fe0
Child:
2:e7e761471df9
It is modified to work wirh mbed platform. Now compiles but fifo is not available (Using sparkfun dmp library)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedoguz 1:a6c3f8680fe0 1 #include "mdcompat.h"
mbedoguz 1:a6c3f8680fe0 2 #include "mbed.h" // must be out of the scope of extern "C"
mbedoguz 1:a6c3f8680fe0 3 I2C imu9250(PB_7,PB_6);
mbedoguz 1:a6c3f8680fe0 4
mbedoguz 1:a6c3f8680fe0 5 void imu_init(void){
mbedoguz 1:a6c3f8680fe0 6 imu9250.frequency(400000);
mbedoguz 1:a6c3f8680fe0 7 }
mbedoguz 1:a6c3f8680fe0 8 unsigned short constrain(
mbedoguz 1:a6c3f8680fe0 9 unsigned short x,
mbedoguz 1:a6c3f8680fe0 10 unsigned short a,
mbedoguz 1:a6c3f8680fe0 11 unsigned short b) {unsigned short result;
mbedoguz 1:a6c3f8680fe0 12 result= (x<a) ? a:x;
mbedoguz 1:a6c3f8680fe0 13 result= (x>b) ? b:x;
mbedoguz 1:a6c3f8680fe0 14 return result;
mbedoguz 1:a6c3f8680fe0 15 }
mbedoguz 1:a6c3f8680fe0 16
mbedoguz 1:a6c3f8680fe0 17 extern "C" {
mbedoguz 1:a6c3f8680fe0 18
mbedoguz 1:a6c3f8680fe0 19 int mbed_i2c_write(
mbedoguz 1:a6c3f8680fe0 20 unsigned char slave_addr,
mbedoguz 1:a6c3f8680fe0 21 unsigned char reg_addr,
mbedoguz 1:a6c3f8680fe0 22 unsigned char length,
mbedoguz 1:a6c3f8680fe0 23 char const *data) {
mbedoguz 1:a6c3f8680fe0 24
mbedoguz 1:a6c3f8680fe0 25 imu9250.write((int)slave_addr,(char const*)reg_addr,1,true);//sending register adress first to indicate which register we are writing and a write register(0)
mbedoguz 1:a6c3f8680fe0 26 imu9250.write((int)slave_addr,data,(int)length,false);
mbedoguz 1:a6c3f8680fe0 27
mbedoguz 1:a6c3f8680fe0 28 return 0;
mbedoguz 1:a6c3f8680fe0 29 }
mbedoguz 1:a6c3f8680fe0 30
mbedoguz 1:a6c3f8680fe0 31 int mbed_i2c_read(
mbedoguz 1:a6c3f8680fe0 32 unsigned char slave_addr,
mbedoguz 1:a6c3f8680fe0 33 unsigned char reg_addr,
mbedoguz 1:a6c3f8680fe0 34 unsigned char length,
mbedoguz 1:a6c3f8680fe0 35 char *data) {
mbedoguz 1:a6c3f8680fe0 36
mbedoguz 1:a6c3f8680fe0 37 imu9250.write((int)slave_addr,(char const*)reg_addr,1,true);//sending register adress first to indicate which register we are writing and a write register(0)
mbedoguz 1:a6c3f8680fe0 38 imu9250.read((int)slave_addr,data,(int)length,false);
mbedoguz 1:a6c3f8680fe0 39 return 0;
mbedoguz 1:a6c3f8680fe0 40 }
mbedoguz 1:a6c3f8680fe0 41
mbedoguz 1:a6c3f8680fe0 42 int delay_ms(
mbedoguz 1:a6c3f8680fe0 43 unsigned long num_ms) {
mbedoguz 1:a6c3f8680fe0 44 return 0;
mbedoguz 1:a6c3f8680fe0 45 }
mbedoguz 1:a6c3f8680fe0 46
mbedoguz 1:a6c3f8680fe0 47 int get_ms(
mbedoguz 1:a6c3f8680fe0 48 unsigned long *count) {
mbedoguz 1:a6c3f8680fe0 49 return 0;
mbedoguz 1:a6c3f8680fe0 50 }
mbedoguz 1:a6c3f8680fe0 51
mbedoguz 1:a6c3f8680fe0 52 int reg_int_cb(
mbedoguz 1:a6c3f8680fe0 53 void (*cb)(void),
mbedoguz 1:a6c3f8680fe0 54 unsigned char port,
mbedoguz 1:a6c3f8680fe0 55 unsigned char pin) {
mbedoguz 1:a6c3f8680fe0 56 return 0;
mbedoguz 1:a6c3f8680fe0 57 }
mbedoguz 1:a6c3f8680fe0 58
mbedoguz 1:a6c3f8680fe0 59 long labs(long x) {
mbedoguz 1:a6c3f8680fe0 60 return x > 0 ? x : -x;
mbedoguz 1:a6c3f8680fe0 61 }
mbedoguz 1:a6c3f8680fe0 62
mbedoguz 1:a6c3f8680fe0 63 float fabsf(float x) {
mbedoguz 1:a6c3f8680fe0 64 return x > 0 ? x : -x;
mbedoguz 1:a6c3f8680fe0 65 }
mbedoguz 1:a6c3f8680fe0 66
mbedoguz 1:a6c3f8680fe0 67 int min(int a, int b) {
mbedoguz 1:a6c3f8680fe0 68 return a > b ? b : a;
mbedoguz 1:a6c3f8680fe0 69 }
mbedoguz 1:a6c3f8680fe0 70
mbedoguz 1:a6c3f8680fe0 71 };