interface class for an inertial measurement unit that uses a serial protocol.

Dependencies:   mbed

Committer:
Blaze513
Date:
Sun Feb 13 10:49:06 2011 +0000
Revision:
1:555c2c2bf9d3
Parent:
0:fd1fce2347d9
interrupt still under construction

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Blaze513 1:555c2c2bf9d3 1 #include "mbed.h"
Blaze513 1:555c2c2bf9d3 2 #include "MS3DMGX2.h"
Blaze513 1:555c2c2bf9d3 3
Blaze513 1:555c2c2bf9d3 4 MS3DMGX2 IMU(p9, p10);
Blaze513 1:555c2c2bf9d3 5 DigitalOut led(LED1);
Blaze513 1:555c2c2bf9d3 6 DigitalOut led4(LED4);
Blaze513 1:555c2c2bf9d3 7 Serial PC(USBTX,USBRX);
Blaze513 1:555c2c2bf9d3 8 int main()
Blaze513 1:555c2c2bf9d3 9 {
Blaze513 1:555c2c2bf9d3 10 led=0;
Blaze513 1:555c2c2bf9d3 11 led4=0;
Blaze513 1:555c2c2bf9d3 12 PC.baud(9600);
Blaze513 1:555c2c2bf9d3 13 float data[9];
Blaze513 1:555c2c2bf9d3 14 bool isvalid;
Blaze513 1:555c2c2bf9d3 15 wait(1);
Blaze513 1:555c2c2bf9d3 16 isvalid = IMU.Mode(0x05);
Blaze513 1:555c2c2bf9d3 17 PC.printf("Data Valid: %d\r\n\r\n", isvalid);
Blaze513 1:555c2c2bf9d3 18 //IMU.RequestSyncRead();
Blaze513 1:555c2c2bf9d3 19 wait(1);
Blaze513 1:555c2c2bf9d3 20
Blaze513 1:555c2c2bf9d3 21 while (1)
Blaze513 1:555c2c2bf9d3 22 {
Blaze513 1:555c2c2bf9d3 23 while(!IMU.Readable());
Blaze513 1:555c2c2bf9d3 24 isvalid = IMU.Read(data);
Blaze513 1:555c2c2bf9d3 25
Blaze513 1:555c2c2bf9d3 26 PC.printf("IMU Accel x Reads %f\r\n",data[0]);//NOTE: the compiler will not even calculate unused variables
Blaze513 1:555c2c2bf9d3 27 PC.printf("IMU accel y Reads %f\r\n",data[1]);//If the data retrieved above was not used, it wouldn't even be retrieved and the validity check would not pass
Blaze513 1:555c2c2bf9d3 28 PC.printf("IMU accel z Reads %f\r\n",data[2]);//this is called "compiler optimization"
Blaze513 1:555c2c2bf9d3 29
Blaze513 1:555c2c2bf9d3 30 PC.printf("IMU ang rate x Reads %f\r\n",data[3]);
Blaze513 1:555c2c2bf9d3 31 PC.printf("IMU ang rate y Reads %f\r\n",data[4]);
Blaze513 1:555c2c2bf9d3 32 PC.printf("IMU ang rate z Reads %f\r\n",data[5]);
Blaze513 1:555c2c2bf9d3 33
Blaze513 1:555c2c2bf9d3 34 PC.printf("IMU mag x Reads %f\r\n",data[6]);
Blaze513 1:555c2c2bf9d3 35 PC.printf("IMU mag y Reads %f\r\n",data[7]);
Blaze513 1:555c2c2bf9d3 36 PC.printf("IMU mag z Reads %f\r\n",data[8]);
Blaze513 1:555c2c2bf9d3 37 PC.printf("Validity: %d\r\n\r\n", isvalid);
Blaze513 1:555c2c2bf9d3 38
Blaze513 1:555c2c2bf9d3 39 wait_ms(1000);
Blaze513 1:555c2c2bf9d3 40 }
Blaze513 1:555c2c2bf9d3 41 }