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
mdcompat.cpp@1:a6c3f8680fe0, 2017-08-07 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |