Denwis La / Mbed OS mDot_Send_Data

Dependencies:   libmDot-dev-mbed5-deprecated ISL29011

Fork of mdot-examples by 3mdeb

Revision:
16:12f38e4755de
Parent:
15:d110e4bbff65
Child:
17:0a8d151af3c6
diff -r d110e4bbff65 -r 12f38e4755de peer_to_peer_example.cpp
--- a/peer_to_peer_example.cpp	Sat Dec 09 03:28:44 2017 +0000
+++ b/peer_to_peer_example.cpp	Sat Dec 09 03:38:19 2017 +0000
@@ -157,6 +157,12 @@
     
     // Points to the returned char pointer from called functions
     char * rawTempValues;           // Could change to uint8_t, same for other char pointers
+    char Xmsb;
+    char Xlsb;
+    char Ymsb;
+    char Ylsb;
+    char Zmsb;
+    char Zlsb;
     
     // Save converted values here
     uint16_t convertedTempValue;    // Data values must be uint16_t for conversion and send prep
@@ -309,9 +315,16 @@
                 for(int i = 0; i < 15; ++i){
                     regAddress = 0x08;  // This is the register address for XData
                     accelValues = accelerometerI2CRead(regAddress);
-                    XData = ((twosComplementConversion(*(accelValues + 0)) << 8) | twosComplementConversion(*(accelValues + 1))) >> 4;  // Combine two bytes into short int(16 bits), remove last 4 flag bits
-                    YData = ((twosComplementConversion(*(accelValues + 2)) << 8) | twosComplementConversion(*(accelValues + 3))) >> 4;
-                    ZData = ((twosComplementConversion(*(accelValues + 4)) << 8) | twosComplementConversion(*(accelValues + 5))) >> 4;
+                    Xmsb = twosComplementConversion(*(accelValues + 0));
+                    Xlsb = twosComplementConversion(*(accelValues + 1));
+                    Ymsb = twosComplementConversion(*(accelValues + 2));
+                    Ylsb = twosComplementConversion(*(accelValues + 3));
+                    Zmsb = twosComplementConversion(*(accelValues + 4));
+                    Zlsb = twosComplementConversion(*(accelValues + 5));
+                    
+                    XData = (Xmsb << 8 | Xlsb) >> 4;  // Combine two bytes into short int, remove last 4 flag bits
+                    YData = (Ymsb << 8 | Ylsb) >> 4;
+                    ZData = (Zmsb << 8 | Zlsb) >> 4;
                     pc.printf("\n %d: X: 0x%x | Y: 0x%x | Z: 0x%x \n\r", i+1, XData, YData, ZData);
                     wait(0.2);
                 }
@@ -333,15 +346,18 @@
                 for(int i = 0; i < 15; ++i){
                     regAddress = 0x08;
                     accelValues = accelerometerI2CRead(regAddress);
-                    XData = ((twosComplementConversion(*(accelValues + 0)) << 8) | twosComplementConversion(*(accelValues + 1))) >> 4;  // Combine two bytes into short int(16 bits), remove last 4 flag bits
-                    YData = ((twosComplementConversion(*(accelValues + 2)) << 8) | twosComplementConversion(*(accelValues + 3))) >> 4;
-                    ZData = ((twosComplementConversion(*(accelValues + 4)) << 8) | twosComplementConversion(*(accelValues + 5))) >> 4;
-                    pc.printf("\n %d: X:: H: %x | L: %x | Y:: H: %x | L: %x | Z: H: %x | L: %x \n\r", i+1, *(accelValues + 0), 
-                                                                                                           *(accelValues + 1), 
-                                                                                                           *(accelValues + 2),
-                                                                                                           *(accelValues + 3),
-                                                                                                           *(accelValues + 4),
-                                                                                                           *(accelValues + 5));
+                    Xmsb = twosComplementConversion(*(accelValues + 0));
+                    Xlsb = twosComplementConversion(*(accelValues + 1));
+                    Ymsb = twosComplementConversion(*(accelValues + 2));
+                    Ylsb = twosComplementConversion(*(accelValues + 3));
+                    Zmsb = twosComplementConversion(*(accelValues + 4));
+                    Zlsb = twosComplementConversion(*(accelValues + 5));
+                    pc.printf("\n %d: X:: H: %x | L: %x | Y:: H: %x | L: %x | Z: H: %x | L: %x \n\r", i+1, Xmsb, 
+                                                                                                           Xlsb, 
+                                                                                                           Ymsb,
+                                                                                                           Ylsb,
+                                                                                                           Zmsb,
+                                                                                                           Zlsb);
                     wait(0.2);
                 }
                 break;
@@ -437,12 +453,6 @@
                 break;
             case 101:   // e for two's complement of accel data
                 regAddress = 0x08;
-                char Xmsb;
-                char Xlsb;
-                char Ymsb;
-                char Ylsb;
-                char Zmsb;
-                char Zlsb;
                 
                 accelValues = accelerometerI2CRead(regAddress);