Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 4:f81b40e04a58
- Parent:
- 3:1e9b4a4bf177
- Child:
- 5:6d8f9165021e
--- 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());
+ }
+
}
}