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
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()); + } + } }