Suzu Tomo / Mbed OS 2020_ChristmasLED

Dependencies:   WS2812B_SPI

Revision:
0:943dfa56009a
diff -r 000000000000 -r 943dfa56009a singsingsing.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/singsingsing.h	Sat Nov 07 13:40:03 2020 +0000
@@ -0,0 +1,177 @@
+void SingSingSing()
+{
+    doLedStop = true;
+    calcBar = 0;
+    
+// Intro
+    FadeLED(2*4,0,0xFFFFFF,1);
+    LightLED(16*4,0xFFFFFF,1);
+
+// A
+    LightLED(10*4,0x0000FF,1);
+    LightLED(2*4,0xFF0000,1);
+    LightLED(4*4,0x0000FF,1);
+
+// B
+    LightLED(8*4,0x00FF00,1);
+
+// C
+    LightLED(7*4 + 3.66,0xFFFFFF,1);
+
+    LightLED(2,0xFF0000,1);
+    LightLED(2.33,0x0000FF,1);
+    LightLED(1.66,0xFF0000,1);
+    LightLED(2.33 + 1*4+3,0x0000FF,1);
+    LightLED(1,0x000000,1);
+
+// D
+    LightLED(5*4 + 3.66,0x8000FF,1);
+    LightLED(2*4,0xFF0000,1);
+    LightLED(0.33 + 4*4,0x8000FF,1);
+
+    LightLED(1.66,0xFF0000,1);
+    LightLED(2.33,0x0000FF,1);
+    LightLED(1.66,0xFF0000,1);
+    LightLED(2,0x0000FF,1);
+    LightLED(0.33+2*4,0xFF0000,1);
+
+// E
+    for (int i = 0; i < BUF; i++) {
+        if (i < BUF/2) for (int t = 0; t < 3; t++) tape[t].Write(i,0xFFFFFF);
+        else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+    }
+    TempoWait(2*4,1);
+    for (int i = 0; i < BUF; i++) {
+        if (i > BUF/2) for (int t = 0; t < 3; t++) tape[t].Write(i,0xFFFFFF);
+        else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+    }
+    TempoWait(2*4,1);
+    LightLED(4*4,0xFFFFFF,1);
+
+// F
+    LightLED(16*4,0x00FF00,1);
+
+// G
+    for (int j = 0; j < 2; j++) {
+        for (int i = 0; i < 3; i++) {
+            LightLED(4,0xFF0000,1);
+            FadeLED(4,0,0x0000FF,1);
+        }
+        FadeLED(2*4,0,0x0000FF,1);
+    }
+
+// H
+    LightLED(8*4,0x00FF00,1);
+
+// I
+    for (int j = 0; j < 2; j++) {
+        for (int i = 0; i < 3; i++) {
+            LightLED(2,0xFF0000,1);
+            LightLED(2,0x0000FF,1);
+            LightLED(1.66,0xFF0000,1);
+            LightLED(2.33,0x0000FF,1);
+        }
+        FadeLED(2*4,0,0x0000FF,1);
+    }
+
+// J
+    for (int j = 0; j < 8; j++) {
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0xFFFFFF);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+        }
+        TempoWait(1,1);
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0xFFFFFF);
+        }
+        TempoWait(1,1);
+    }
+    for (int j = 0; j < 4; j++) {
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0xFF0000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+        }
+        TempoWait(1,1);
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0xFF0000);
+        }
+        TempoWait(1,1);
+    }
+    for (int j = 0; j < 4; j++) {
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x00FF00);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+        }
+        TempoWait(1,1);
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x00FF00);
+        }
+        TempoWait(1,1);
+    }
+    for (int j = 0; j < 4; j++) {
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x0000FF);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+        }
+        TempoWait(1,1);
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x0000FF);
+        }
+        TempoWait(1,1);
+    }
+    for (int j = 0; j < 8; j++) {
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0xFF0000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+        }
+        TempoWait(1,1);
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0xFF0000);
+        }
+        TempoWait(1,1);
+    }
+
+// K
+    for (int j = 0; j < 11; j++) {
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0xFFFFFF);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+        }
+        TempoWait(1,1);
+        for (int i = 0; i < BUF; i++) {
+            if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+            else for (int t = 0; t < 3; t++) tape[t].Write(i,0xFFFFFF);
+        }
+        TempoWait(1,1);
+    }
+    for (int i = 0; i < BUF; i++) {
+        if ((i % 10) >= 0 && (i % 10) <= 4) for (int t = 0; t < 3; t++) tape[t].Write(i,0xFFFFFF);
+        else for (int t = 0; t < 3; t++) tape[t].Write(i,0x000000);
+    }
+    TempoWait(1,1);
+    LightLED(2,0xFF0000,1);
+    LightLED(2,0xFFFF00,1);
+    LightLED(2,0x00FF00,1);
+    LightLED(2,0x00FFFF,1);
+    LightLED(1+4*4,0x0000FF,1);
+    
+    LightLED(1*4,0x000000,1);
+    
+    LightLED(2,0xFF0000,1);
+    LightLED(2,0x000000,1);
+    LightLED(2,0xFF0000,1);
+    LightLED(2,0x000000,1);
+    
+    LightLED(5*4,0xFFFFFF,1);
+
+// End
+    pc.putc(0xFF);
+
+
+    while (1) ;
+}
\ No newline at end of file