Thomas Hamilton
/
3DM-GX2
interface class for an inertial measurement unit that uses a serial protocol.
main.cpp@1:555c2c2bf9d3, 2011-02-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |