Dependencies: PixelArray WS2812 mbed
[OLD - NOT FINISHED CODE]
Final code for the Pong Table Code can be found here: https://developer.mbed.org/teams/ASE/code/frdm_pong_table_controller/
Revision 0:e610b1d38e80, committed 2017-02-17
- Comitter:
- alikin01
- Date:
- Fri Feb 17 11:06:41 2017 +0000
- Child:
- 1:58c735e369b1
- Commit message:
- LEDS driver
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PixelArray.lib Fri Feb 17 11:06:41 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/chris/code/PixelArray/#b45a70faaa83
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WS2812.lib Fri Feb 17 11:06:41 2017 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/bridadan/code/WS2812/#6e647820f587
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Fri Feb 17 11:06:41 2017 +0000
@@ -0,0 +1,617 @@
+
+#include "mbed.h"
+#include "WS2812.h"
+#include "PixelArray.h"
+
+Serial pc(USBTX, USBRX);
+
+
+DigitalIn sw2(SW2);
+
+#define WS2812_BUF 112
+#define NUM_COLORS 6
+#define NUM_LEDS_PER_COLOR 1
+
+//-------- Colours -----------
+#define RED 0x2f0000
+#define YELLOW 0x2f2f00
+#define GREEN 0x002f00
+#define LIGHTBLUE 0x002f2f
+#define DARKBLUE 0x00002f
+#define PINK 0x2f002f
+#define OFF 0x000000
+#define WHITE 0xffffff
+#define ARMBLUE 0x128BAB
+
+
+bool seg1A, seg1B, seg1C, seg1D, seg1E, seg1F, seg1G;
+int seg1Array[112];
+int MainArray[10][122];
+
+//void write_8Seg(int num);
+PixelArray px(WS2812_BUF);
+
+// See the program page for information on the timing numbers
+// The given numbers are for the K64F
+WS2812 ws(D9, WS2812_BUF, 0, 5, 5, 0);
+
+
+void write_7Seg(int num){
+
+ switch (num)
+ {
+ case 0 :
+ // Off
+ seg1A = 0;
+ seg1B = 0;
+ seg1C = 0;
+ seg1D = 0;
+ seg1E = 0;
+ seg1F = 0;
+ seg1G = 0;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[0][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[0][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[0][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[0][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[0][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[0][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[0][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 1 :
+ // 1
+ seg1A = 0;
+ seg1B = 1;
+ seg1C = 1;
+ seg1D = 0;
+ seg1E = 0;
+ seg1F = 0;
+ seg1G = 0;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[1][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[1][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[1][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[1][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[1][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[1][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[1][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 2 :
+ // 2
+ seg1A = 1;
+ seg1B = 1;
+ seg1C = 0;
+ seg1D = 1;
+ seg1E = 1;
+ seg1F = 0;
+ seg1G = 1;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[2][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[2][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[2][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[2][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[2][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[2][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[2][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 3 :
+ // 3
+ seg1A = 1;
+ seg1B = 1;
+ seg1C = 1;
+ seg1D = 1;
+ seg1E = 0;
+ seg1F = 0;
+ seg1G = 1;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[3][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[3][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[3][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[3][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[3][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[3][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[3][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 4:
+ // 4
+ seg1A = 0;
+ seg1B = 1;
+ seg1C = 1;
+ seg1D = 0;
+ seg1E = 0;
+ seg1F = 1;
+ seg1G = 1;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[4][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[4][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[4][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[4][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[4][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[4][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[4][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 5:
+ // 5
+ seg1A = 1;
+ seg1B = 0;
+ seg1C = 1;
+ seg1D = 1;
+ seg1E = 0;
+ seg1F = 1;
+ seg1G = 1;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[5][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[5][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[5][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[5][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[5][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[5][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[5][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 6:
+ // 6
+ seg1A = 1;
+ seg1B = 0;
+ seg1C = 1;
+ seg1D = 1;
+ seg1E = 1;
+ seg1F = 1;
+ seg1G = 1;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[6][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[6][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[6][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[6][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[6][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[6][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[6][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 7:
+ // 7
+ seg1A = 1;
+ seg1B = 1;
+ seg1C = 1;
+ seg1D = 0;
+ seg1E = 0;
+ seg1F = 0;
+ seg1G = 0;
+
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[7][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[7][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[7][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[7][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[7][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[7][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[7][i] = seg1G;
+ }
+
+ }// FOR LOOP
+
+ break;
+
+ case 8:
+ // 8
+ printf("Case 8");
+ seg1A = 1;
+ seg1B = 1;
+ seg1C = 1;
+ seg1D = 1;
+ seg1E = 1;
+ seg1F = 1;
+ seg1G = 1;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[8][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[8][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[8][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[8][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[8][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[8][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[8][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ case 9:
+ // 9
+ seg1A = 1;
+ seg1B = 1;
+ seg1C = 1;
+ seg1D = 0;
+ seg1E = 0;
+ seg1F = 1;
+ seg1G = 1;
+
+ for (int i = 0; i < WS2812_BUF; i++) {
+
+ if (i < 16)
+ {
+ MainArray[9][i] = seg1A;
+ }
+
+ if ( i >= 16 && i < 32)
+ {
+ MainArray[9][i] = seg1B;
+ }
+
+ if (i >= 32 && i < 48)
+ {
+ MainArray[9][i] = seg1C;
+ }
+
+ if (i >= 48 && i < 64)
+ {
+ MainArray[9][i]= seg1D;
+ }
+
+ if ( i >= 64 && i < 80)
+ {
+ MainArray[9][i] = seg1E;
+ }
+
+ if (i >= 80 && i < 96)
+ {
+ MainArray[9][i] = seg1F;
+ }
+
+ if ( i >= 96 && i < 112)
+ {
+ MainArray[9][i] = seg1G;
+ }
+
+ }// FOR LOOP
+ break;
+
+ default :
+
+ break;
+
+ }
+}
+
+//NEEDS REWRITING
+void write_pbbuf(int line_num){
+
+ for (int i = 0; i < WS2812_BUF; i++)
+ {
+ if (MainArray[line_num][i] == 0)
+ {
+ px.Set(i,OFF);
+ }
+
+ if (MainArray[line_num][i] == 1)
+ {
+ px.Set(i,WHITE);
+ }
+ }
+ ws.write(px.getBuf());
+}
+
+
+void setup(){
+
+ for(int i=0;i<10;i++){
+ write_7Seg(i);
+ }
+}
+
+
+
+
+int main(){
+
+ ws.setII(0xFF);
+ ws.useII(WS2812::GLOBAL);
+
+ setup();
+ while(1){
+ for(int i =0;i<10;i++){
+ write_pbbuf(i);
+ wait_ms(1000);
+ }
+ }
+
+
+ //write_pbbuf();
+ //wait_ms(1000);
+
+
+ }
+ /*
+ for(i=1;i<3;i++){
+ write_8Seg(1);
+ //printf(" %d , %d , %d , %d , %d , %d , %d\n", seg1A,seg1B,seg1C,seg1D,seg1E,seg1F,seg1G);
+ for (i = 0; i < 112; i++){
+ printf("%d",seg1Array[i]);
+ }
+ write_pbbuf();
+ wait_ms(1000);
+
+ }
+ */
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Feb 17 11:06:41 2017 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/d75b3fe1f5cb \ No newline at end of file