BMek
/
nRF52832_MPU9250
We have a custom board designed using nRF52832 and MPU9250
main.cpp@0:5db36d8f8a01, 2017-08-17 (annotated)
- 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?
User | Revision | Line number | New 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 | } |