Tyler Altenhofen / Mbed 2 deprecated TylerPOV

Dependencies:   mbed

Revision:
4:f81b40e04a58
Parent:
3:1e9b4a4bf177
Child:
5:6d8f9165021e
diff -r 1e9b4a4bf177 -r f81b40e04a58 main.cpp
--- a/main.cpp	Sun Apr 19 23:03:43 2015 +0000
+++ b/main.cpp	Mon Apr 20 19:55:59 2015 +0000
@@ -28,36 +28,54 @@
 double slice_time;
 double rotate_time;
 int current_slice;
-char slice_data [NUMBER_OF_SLICES][16]; //[slice][specific bit] & with approppriate bit for each arm
+char slice_data [NUMBER_OF_SLICES][16]; //[slice][specific led distance] (0 is closest) & with approppriate bit for each arm 
 double firstTime;
 
 Serial pc(USBTX, USBRX); // tx, rx
 Serial bt(p9, p10);// tx, rx
 
 
-void pushData (char (*bits) [16]){
-  for (int i = 0; i < 16; i ++){
-    dataArmOne = *bits [i] & 0x80;
-    dataArmTwo = *bits [i] & 0x40;
-    dataArmThree = *bits [i]& 0x20;
-    dataArmFour = *bits [i]& 0x10;
-    dataArmFive = *bits [i] & 0x08;
-    //dataArmSix = *bits [5][i];
-    //dataArmSeven = *bits [6][i];
-    //dataArmEight = *bits [7][i];
+void pushData (char bits [16]){
+  //pc.printf("got here");
+  //for (int i = 0; i < 16; i ++){
+  //    pc.printf("%i %u ", i, bits[i]);
+  //  }
+  for (int i = 8; i < 16; i ++){
+    dataArmOne = bits [i] & 0x01;
+    dataArmTwo = bits [i] & 0x02;
+    dataArmThree = bits [i]& 0x04;
+    dataArmFour = bits [i]& 0x08;
+    dataArmFive = bits [i] & 0x10;
+    dataArmSix = bits [i] & 0x20;
+    dataArmSeven = bits [i] & 0x40;
+    dataArmEight = bits [i] & 0x80;
     
     pushBit = 1;
     pushBit = 0;
   }
+  for (int i = 7; i >= 0; i --){
+    dataArmOne = bits [i] & 0x01;
+    dataArmTwo = bits [i] & 0x02;
+    dataArmThree = bits [i]& 0x04;
+    dataArmFour = bits [i]& 0x08;
+    dataArmFive = bits [i] & 0x10;
+    dataArmSix = bits [i] & 0x20;
+    dataArmSeven = bits [i] & 0x40;
+    dataArmEight = bits [i] & 0x80;
+    
+    pushBit = 1;
+    pushBit = 0;
+    }
+      
+  pushRegister = 1;
+  pushRegister = 0;
 }
 
 
 //periodic display interrupt
 void nextLedPush(){
   if (current_slice < NUMBER_OF_SLICES){
-    pushData(&slice_data[current_slice]);
-    pushRegister = 1;
-    pushRegister = 0;
+    pushData(slice_data[current_slice]);
     current_slice ++;
   } else {
       updateLeds.detach();
@@ -74,7 +92,7 @@
     pc.printf("first time");
     led = !led;
     return;
-  } else if(current_slice < NUMBER_OF_SLICES / 2){
+  } else if(current_slice < NUMBER_OF_SLICES / 4){
       return;
       }
   pc.printf("seconod time \n");
@@ -96,19 +114,45 @@
     
     hallSensor.fall(&rotate_sense);
     for (int i = 0; i < 45; i ++){
-        slice_data [i][0] = 0x80; // bit 0 is high on arm 0
+        slice_data [i][0] = 0x01; // bit 0 is high on arm 0
+        slice_data [i][1] = 0x00;
+        slice_data [i][2] = 0x00;
+        slice_data [i][3] = 0x00;
+        slice_data [i][4] = 0x00;
+        slice_data [i][5] = 0x00;
+        slice_data [i][6] = 0x00;
+        slice_data [i][9] = 0x00;
+        slice_data [i][10] = 0x00;
+        slice_data [i][11] = 0x00;
+        slice_data [i][12] = 0x00;
+        slice_data [i][13] = 0x00;
+        slice_data [i][14] = 0x00;
+        slice_data [i][15] = 0x00;
         //{1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0};
     }
     for (int i = 45; i < 90; i++){
-      slice_data [i][0] = 0x00;
+        slice_data [i][0] = 0x00; // bit 0 is high on arm 0
+        slice_data [i][1] = 0x00;
+        slice_data [i][2] = 0x00;
+        slice_data [i][3] = 0x00;
+        slice_data [i][4] = 0x00;
+        slice_data [i][5] = 0x00;
+        slice_data [i][6] = 0x00;
+        slice_data [i][9] = 0x00;
+        slice_data [i][10] = 0x00;
+        slice_data [i][11] = 0x00;
+        slice_data [i][12] = 0x00;
+        slice_data [i][13] = 0x00;
+        slice_data [i][14] = 0x00;
+        slice_data [i][15] = 0x00;
       //{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
     }
+    pushData(slice_data[20]);
     
     while(1) {
       if (bt.readable()){
-          pc.printf("%f \n", bt.getc());
-          pc.printf("read that ish");
-      //TODO: add in the ability to update the buffers        
-        
+          pc.printf("Just read %c", bt.getc());
+          }       
+     
     }
 }