Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MPU9250_SPI mbed
Fork of MPU9250_AHRS by
Diff: main.cpp
- Revision:
- 7:758a94e02aa7
- Parent:
- 6:ea0804dc7cae
- Child:
- 8:03f9b5289083
diff -r ea0804dc7cae -r 758a94e02aa7 main.cpp
--- a/main.cpp Fri Jun 17 05:16:13 2016 +0000
+++ b/main.cpp Fri Jun 17 05:31:40 2016 +0000
@@ -33,9 +33,13 @@
imu[0] = new mpu9250_spi(spi, p8);
imu[1] = new mpu9250_spi(spi, p9);
- int i=0;
+ for(int i=0;i<2;i++){
- if(imu[i]->init(1,BITS_DLPF_CFG_188HZ)){ //INIT the mpu9250
+ imu[0]->deselect();
+ imu[1]->deselect();
+ imu[i]->select();
+
+ if(imu[i]->init(1,BITS_DLPF_CFG_188HZ)){ //INIT the mpu9250
printf("\nCouldn't initialize MPU9250 via SPI!");
}
printf("\nWHOAMI=0x%2x\n",imu[i]->whoami()); //output the I2C address to know if SPI is working, it should be 104
@@ -47,18 +51,26 @@
printf("AK8963 WHIAM=0x%2x\n",imu[i]->AK8963_whoami());
wait(0.1);
imu[i]->AK8963_calib_Magnetometer();
-
- while(1) {
- //myled = 1;
- wait(0.1);
- /*
- imu[i]->read_temp();
- imu[i]->read_acc();
- imu[i]->read_rot();
- imu[i]->AK8963_read_Magnetometer();
- */
+ }
+ imu[0]->select();
+ imu[1]->deselect();
+ while(1) {
+
+
+ //myled = 1;
+ wait_us(1);
+ /*
+ imu[i]->read_temp();
+ imu[i]->read_acc();
+ imu[i]->read_rot();
+ imu[i]->AK8963_read_Magnetometer();
+ */
+ for(int i=0;i<2;i++){
+ imu[0]->deselect();
+ imu[1]->deselect();
+ imu[i]->select();
imu[i]->read_all();
- printf("%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f\n",
+ printf("%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f ",
imu[i]->Temperature,
imu[i]->gyroscope_data[0],
imu[i]->gyroscope_data[1],
@@ -70,34 +82,9 @@
imu[i]->Magnetometer[1],
imu[i]->Magnetometer[2]
);
- //myled = 0;
- //wait(0.5);
+ //myled = 0;
+ //wait(0.5);
}
-
- /*
- uint64_t xyzt[6];
- short xi[6],yi[6],zi[6];
-
- while(1) {
-
-
- for (int i=0; i<6; i++)
- xyzt[i] = adxl362[i]->scan();
-
- for (int i=0; i<6; i++) {
- uint16_t x = static_cast<uint16_t>(0xFFFF&(xyzt[i]>>48));
- uint16_t y = static_cast<uint16_t>(0xFFFF&(xyzt[i]>>32));
- uint16_t z = static_cast<uint16_t>(0xFFFF&(xyzt[i]>>16));
-
- if(x & 1<<16) xi[i] = -1 * static_cast<short>(~x) + 1; else xi[i] = x;
- if(y & 1<<16) yi[i] = -1 * static_cast<short>(~y) + 1; else yi[i] = y;
- if(z & 1<<16) zi[i] = -1 * static_cast<short>(~z) + 1; else zi[i] = z;
- }
- for (int i=0; i<6; i++) {
- printf("%d %d %d ", xi[i], yi[i], zi[i]);
- }
- printf("\r\n");
- wait_us(1);
+ printf("\n");
}
- */
}
