We have a custom board designed using nRF52832 and MPU9250

Dependencies:   MPU9250 mbed

Committer:
sanjay_ingale
Date:
Thu Aug 17 07:57:08 2017 +0000
Revision:
0:5db36d8f8a01
MPU9250 working program with nRF52832 custom board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sanjay_ingale 0:5db36d8f8a01 1
sanjay_ingale 0:5db36d8f8a01 2 #include "mbed.h"
sanjay_ingale 0:5db36d8f8a01 3 #include "Serial.h"
sanjay_ingale 0:5db36d8f8a01 4 #include "MPU9250.h"
sanjay_ingale 0:5db36d8f8a01 5
sanjay_ingale 0:5db36d8f8a01 6 //Serial pc(USBTX,USBRX);
sanjay_ingale 0:5db36d8f8a01 7 Serial pc(p19,p20);
sanjay_ingale 0:5db36d8f8a01 8 MPU9250 mpu9250;
sanjay_ingale 0:5db36d8f8a01 9 uint8_t whoAmI = 0;
sanjay_ingale 0:5db36d8f8a01 10
sanjay_ingale 0:5db36d8f8a01 11 int main() {
sanjay_ingale 0:5db36d8f8a01 12
sanjay_ingale 0:5db36d8f8a01 13 whoAmI = mpu9250.readByte(MPU9250_ADDRESS, WHO_AM_I_MPU9250);
sanjay_ingale 0:5db36d8f8a01 14 pc.printf("\r\WHO_AM_I_MPU9250 = %x \r\n",whoAmI);
sanjay_ingale 0:5db36d8f8a01 15
sanjay_ingale 0:5db36d8f8a01 16 mpu9250.resetMPU9250(); // Reset registers to default in preparation for device calibration
sanjay_ingale 0:5db36d8f8a01 17
sanjay_ingale 0:5db36d8f8a01 18 mpu9250.MPU9250SelfTest(SelfTest); // Start by performing self test and reporting values
sanjay_ingale 0:5db36d8f8a01 19 pc.printf("x-axis self test: acceleration trim within: %f pct of factory value\n\r", SelfTest[0]);
sanjay_ingale 0:5db36d8f8a01 20 pc.printf("y-axis self test: acceleration trim within: %f pct of factory value\n\r", SelfTest[1]);
sanjay_ingale 0:5db36d8f8a01 21 pc.printf("z-axis self test: acceleration trim within: %f pct of factory value\n\r", SelfTest[2]);
sanjay_ingale 0:5db36d8f8a01 22 pc.printf("x-axis self test: gyration trim within: %f pct of factory value\n\r", SelfTest[3]);
sanjay_ingale 0:5db36d8f8a01 23 pc.printf("y-axis self test: gyration trim within: %f pct of factory value\n\r", SelfTest[4]);
sanjay_ingale 0:5db36d8f8a01 24 pc.printf("z-axis self test: gyration trim within: %f pct of factory value\n\r", SelfTest[5]);
sanjay_ingale 0:5db36d8f8a01 25
sanjay_ingale 0:5db36d8f8a01 26 mpu9250.getAres(); // Get accelerometer sensitivity
sanjay_ingale 0:5db36d8f8a01 27 mpu9250.getGres(); // Get gyro sensitivity
sanjay_ingale 0:5db36d8f8a01 28 mpu9250.getMres(); // Get magnetometer sensitivity
sanjay_ingale 0:5db36d8f8a01 29 pc.printf("Accelerometer sensitivity is %f LSB/g \n\r", 1.0f/aRes);
sanjay_ingale 0:5db36d8f8a01 30 pc.printf("Gyroscope sensitivity is %f LSB/deg/s \n\r", 1.0f/gRes);
sanjay_ingale 0:5db36d8f8a01 31 pc.printf("Magnetometer sensitivity is %f LSB/G \n\r", 1.0f/mRes);
sanjay_ingale 0:5db36d8f8a01 32
sanjay_ingale 0:5db36d8f8a01 33 while (true) {
sanjay_ingale 0:5db36d8f8a01 34 int16_t accData[3];
sanjay_ingale 0:5db36d8f8a01 35 int16_t gyroData[3];
sanjay_ingale 0:5db36d8f8a01 36 int16_t magData[3];
sanjay_ingale 0:5db36d8f8a01 37
sanjay_ingale 0:5db36d8f8a01 38 #if 1
sanjay_ingale 0:5db36d8f8a01 39 // read Acc Data
sanjay_ingale 0:5db36d8f8a01 40 mpu9250.readAccelData(accData);
sanjay_ingale 0:5db36d8f8a01 41
sanjay_ingale 0:5db36d8f8a01 42 pc.printf("aX = %d,",*accData);
sanjay_ingale 0:5db36d8f8a01 43 pc.printf("aY = %d,",*(accData + 1));
sanjay_ingale 0:5db36d8f8a01 44 pc.printf("aZ = %d,",*(accData + 2));
sanjay_ingale 0:5db36d8f8a01 45 wait(1);
sanjay_ingale 0:5db36d8f8a01 46 #endif
sanjay_ingale 0:5db36d8f8a01 47 #if 1
sanjay_ingale 0:5db36d8f8a01 48 // read Gyro Data
sanjay_ingale 0:5db36d8f8a01 49 mpu9250.readGyroData(gyroData);
sanjay_ingale 0:5db36d8f8a01 50
sanjay_ingale 0:5db36d8f8a01 51 pc.printf("gX = %d,",*gyroData);
sanjay_ingale 0:5db36d8f8a01 52 pc.printf("gY = %d,",*(gyroData + 1));
sanjay_ingale 0:5db36d8f8a01 53 pc.printf("gZ = %d,",*(gyroData + 2));
sanjay_ingale 0:5db36d8f8a01 54 wait(1);
sanjay_ingale 0:5db36d8f8a01 55 #endif
sanjay_ingale 0:5db36d8f8a01 56 #if 1
sanjay_ingale 0:5db36d8f8a01 57 // read Magnetometer Data
sanjay_ingale 0:5db36d8f8a01 58 mpu9250.readMagData(magData);
sanjay_ingale 0:5db36d8f8a01 59
sanjay_ingale 0:5db36d8f8a01 60 pc.printf("mX = %d,",*magData);
sanjay_ingale 0:5db36d8f8a01 61 pc.printf("mY = %d,",*(magData + 1));
sanjay_ingale 0:5db36d8f8a01 62 pc.printf("mZ = %d,",*(magData + 2));
sanjay_ingale 0:5db36d8f8a01 63 wait(1);
sanjay_ingale 0:5db36d8f8a01 64 #endif
sanjay_ingale 0:5db36d8f8a01 65 }
sanjay_ingale 0:5db36d8f8a01 66 }