Prosper Van / GY80

Files at this revision

API Documentation at this revision

Comitter:
oprospero
Date:
Sat Oct 19 17:33:40 2013 +0000
Parent:
3:981c93d62e16
Commit message:
optimized speed

Changed in this revision

GY80.cpp Show annotated file Show diff for this revision Revisions of this file
GY80.h Show annotated file Show diff for this revision Revisions of this file
diff -r 981c93d62e16 -r cc026f60357a GY80.cpp
--- a/GY80.cpp	Tue Oct 15 16:31:41 2013 +0000
+++ b/GY80.cpp	Sat Oct 19 17:33:40 2013 +0000
@@ -27,7 +27,7 @@
 
     // 
     data[0] = 0x2C; // Rate
-    data[1] = 0x0AC; //Set to 400Hz, normal operation, 0x0A 100hz 
+    data[1] = 0x0D; //Set to 800Hz, normal operation, 0x0A 100hz 
     Wire.write(ACCEL_ADDRESS, data, 2);
     wait_ms(1);
 }
@@ -37,7 +37,7 @@
     byte data[2];
 
     data[0] = 0x20; //L3G4200D_CTRL_REG1
-    data[1] = 0x8F; // normal power mode, all axes enable, 8:20 9:25 A:50 B:110 
+    data[1] = 0xCF; // normal power mode, all axes enable, 8:20 9:25 A:50 B:110 
     Wire.write(GYRO_ADDRESS, data, 2);
     wait_ms(1);
 
@@ -47,10 +47,6 @@
     Wire.write(GYRO_ADDRESS, data, 2);
     wait_ms(1);
 
-    data[0] = 0x21; // L3G4200D_CTRL_REG2
-    data[1] = 0x20; //High pass cutoff freq
-    Wire.write(GYRO_ADDRESS, data, 2);
-    wait_ms(1);  
 
     data[0] = 0x24; // L3G4200D_CTRL_REG5
     data[1] = 0x02; //Low Pass Filter
@@ -77,9 +73,12 @@
     buff[0] = 0x32; // Send address to read from
     Wire.write(ACCEL_ADDRESS, buff, 1);
 
+    int accel[3];
     if (Wire.read(ACCEL_ADDRESS, buff,6) == 0)  // All bytes received?
     {
-        Convert(accel, buff);
+        accel[0] = (short) ((uint16_t) buff[1] << 8 | buff[0]);
+        accel[1] = (short) ((uint16_t) buff[3] << 8 | buff[2]);
+        accel[2] = (short) ((uint16_t) buff[5] << 8 | buff[4]);
     }
     accel_v[0] = (accel[0] - ACCEL_X_OFFSET) * ACCEL_X_SCALE;
     accel_v[1] = (accel[1] - ACCEL_Y_OFFSET) * ACCEL_Y_SCALE;
@@ -94,9 +93,12 @@
     buff[0] = 0xA8; // 0x28 | (1 << 7) Send address to read from 
     Wire.write(GYRO_ADDRESS, buff, 1);
     // Request 6 bytes
+    int gyro[3];
     if (Wire.read(GYRO_ADDRESS, buff,6) == 0)  // All bytes received?
     {
-        Convert(gyro, buff);
+        gyro[0] = (short) ((uint16_t) buff[1] << 8 | buff[0]);
+        gyro[1] = (short) ((uint16_t) buff[3] << 8 | buff[2]);
+        gyro[2] = (short) ((uint16_t) buff[5] << 8 | buff[4]);
     }
     gyro_v[0] = DEG2RAD((gyro[0] - GYRO_X_OFFSET) * GYRO_GAIN_X); 
     gyro_v[1] = DEG2RAD((gyro[1] - GYRO_Y_OFFSET) * GYRO_GAIN_Y);
@@ -111,18 +113,15 @@
     Wire.write(MAGN_ADDRESS, buff, 1);
 
     // Request 6 bytes
+    int mag[3];
     if (Wire.read(MAGN_ADDRESS, buff,6) == 0)  // All bytes received?
     {
-        Convert(mag, buff);
+        mag[0] = (short) ((uint16_t) buff[1] << 8 | buff[0]);
+        mag[1] = (short) ((uint16_t) buff[3] << 8 | buff[2]);
+        mag[2] = (short) ((uint16_t) buff[5] << 8 | buff[4]);
     }
     magn_v[0] = (mag[0] - MAGN_X_OFFSET) * MAGN_X_SCALE;
     magn_v[1] = (mag[1] - MAGN_Y_OFFSET) * MAGN_Y_SCALE;
     magn_v[2] = (mag[2] - MAGN_Z_OFFSET) * MAGN_Z_SCALE;
 }
 
-void GY80::Convert(short* value, byte* raw)
-{
-    value[0] = (short) ((uint16_t) raw[1] << 8 | raw[0]);
-    value[1] = (short) ((uint16_t) raw[3] << 8 | raw[2]);
-    value[2] = (short) ((uint16_t) raw[5] << 8 | raw[4]);
-}
\ No newline at end of file
diff -r 981c93d62e16 -r cc026f60357a GY80.h
--- a/GY80.h	Tue Oct 15 16:31:41 2013 +0000
+++ b/GY80.h	Sat Oct 19 17:33:40 2013 +0000
@@ -84,7 +84,6 @@
     void Accel_Init();
     void Gyro_Init();
     void Magn_Init();
-    void Convert(short* value, byte* raw);
 
 };