#include <otSerial.h>
#include <otTimer.h>
#include <otMalloc.h>
#include <otWS2812.h>
#include <otPrintf.h>
otWS2812 ledPanel;
void setup()
{
UartEnableSignals(UART0);
UartSetBaud(UART0, 115200);
_initMalloc();
ledPanel = otWS2812(12, 16, 16);
ledPanel.mirror(true, true);
ledPanel.setOffset(1);
setStdout(1024, UART0);
}
void loop()
{
U8 r, g, b;
printf("Start ...\n");
for(int l = 1; l < 10; l++)
{
printf("L = %2d\n", l);
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
for(int i = 10; i >= 0; i--)
{
ledPanel.rectFill(0 + i, 0 + i, 15 - i, 15 - i, 10, 0, 0);
ledPanel.show(); DelayMs(20);
ledPanel.rectFill(0 + i, 0 + i, 15 - i, 15 - i, 0, 0, 0);
ledPanel.show();
}
for(int i = 0; i < 12; i++)
{
ledPanel.rectFill(0 + i, 0 + i, 15 - i, 15 - i, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.rectFill(0 + i, 0 + i, 15 - i, 15 - i, 0, 0, 0);
ledPanel.show();
}
}
}
int l = 10;
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
for(int x = 0; x < 16; x++)
{
ledPanel.line(0, 0, x, 15, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.line(0, 0, x, 15, 0, 0, 0);
ledPanel.show();
}
for(int x = 1; x < 16; x++)
{
ledPanel.line(0, 0, 15, 15 - x, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.line(0, 0, 15, 15 - x, 0, 0, 0);
ledPanel.show();
}
}
l = 10;
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
for(int ray = 2; ray < 8; ray++)
{
ledPanel.circle(7, 7, ray, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.circle(7, 7, ray, 0, 0, 0);
ledPanel.show();
}
for(int ray = 7; ray >= 2; ray--)
{
ledPanel.circle(7, 7, ray, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.circle(7, 7, ray, 0, 0, 0);
ledPanel.show();
}
}
ledPanel.clear();
ledPanel.show();
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
for(int ray = 2; ray < 8; ray++)
{
ledPanel.circleFill(7, 7, ray, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.circleFill(7, 7, ray, 0, 0, 0);
ledPanel.show();
}
for(int ray = 7; ray >= 2; ray--)
{
ledPanel.circleFill(7, 7, ray, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.circleFill(7, 7, ray, 0, 0, 0);
ledPanel.show();
}
}
ledPanel.clear();
ledPanel.show();
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
for(int i = 4; i < 15; i++)
{
ledPanel.rectRound(1, 1, i, i, 1, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.rectRound(1, 1, i, i, 1, 0, 0, 0);
ledPanel.show();
}
for(int i = 14; i >= 4; i--)
{
ledPanel.rectRound(1, 1, i, i, 1, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.rectRound(1, 1, i, i, 1, 0, 0, 0);
ledPanel.show();
}
}
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
for(int i = 4; i < 15; i++)
{
ledPanel.rectRoundFill(1, 1, i, i, 1, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.rectRoundFill(1, 1, i, i, 1, 0, 0, 0);
ledPanel.show();
}
for(int i = 14; i >= 4; i--)
{
ledPanel.rectRoundFill(1, 1, i, i, 1, r, g, b);
ledPanel.show(); DelayMs(20);
ledPanel.rectRoundFill(1, 1, i, i, 1, 0, 0, 0);
ledPanel.show();
}
}
ledPanel.clear();
ledPanel.show();
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
ledPanel.triangle(2, 14, 14, 14, 8, 8, r, g, b);
ledPanel.show(); DelayMs(200);
ledPanel.triangle(2, 14, 14, 14, 8, 8, 0, 0, 0);
ledPanel.show();
}
char buf[16];
for(int c = 0; c < 7; c++)
{
switch(c)
{
case 0: r = l; g = 0; b = 0; break;
case 1: r = 0; g = l; b = 0; break;
case 2: r = 0; g = 0; b = l; break;
case 3: r = l; g = 0; b = l; break;
case 4: r = 0; g = l; b = l; break;
case 5: r = l; g = l; b = 0; break;
case 6: r = l; g = l; b = l; break;
}
for(int c = 0; c < 1000; c++)
{
sprintf(buf, "%04d", c);
ledPanel.string(buf, 0, 0, r, g, b);
ledPanel.show();
ledPanel.string(buf, 0, 0, 0, 0, 0);
ledPanel.show();
}
}
printf("End\n");
}