Ok, aber genauer soll ich das realisieren?
Ich hab momentan folgenden Code:
[...]
const int MatrixWidth = NUM_ROWS;
const int MatrixHeight = NUM_COLUMNS;
int PixelColor[MatrixWidth+1][MatrixHeight+1][4];
int SerialData;
int CurrentRow = 1;
int CurrentColumn = 1;
String CurrentColor = "r";
String rValue = "";
String gValue = "";
String bValue = "";
int LEDCounter = 0; //Wenn auf 64, sprich alle Pixel gesendet wurden, Bild zeichnen
[...]
if (Serial1.available())
{
SerialData = Serial1.read()-'0';
if (CurrentColor=="r")
{
if(SerialData<0||SerialData>9)
{
CurrentColor="g";
}
else
{
rValue+=SerialData;
}
}
else if (CurrentColor=="g")
{
if(SerialData<0||SerialData>9)
{
CurrentColor="b";
}
else
{
gValue+=SerialData;
}
}
else if (CurrentColor=="b")
{
if(SerialData<0||SerialData>9)
{
//Serial.println("r="+r+" g="+g+" b="+b);
LEDCounter++;
char rValue_as_char[rValue.length()+1];
rValue.toCharArray(rValue_as_char, rValue.length()+1);
int rValue_as_int = atoi(rValue_as_char);
char gValue_as_char[gValue.length()+1];
gValue.toCharArray(gValue_as_char, gValue.length()+1);
int gValue_as_int = atoi(gValue_as_char);
char bValue_as_char[bValue.length()+1];
bValue.toCharArray(bValue_as_char, bValue.length()+1);
int bValue_as_int = atoi(bValue_as_char);
//Serial.println("r="+String(rValue_as_int)+" g="+String(gValue_as_int)+" b="+String(bValue_as_int));
rValue = "";
gValue = "";
bValue = "";
CurrentColor="r";
PixelColor[CurrentRow][CurrentColumn][1] = rValue_as_int;
PixelColor[CurrentRow][CurrentColumn][2] = gValue_as_int;
PixelColor[CurrentRow][CurrentColumn][3] = bValue_as_int;
if(CurrentRow == 8)
{
if(CurrentColumn == 8)
{
CurrentColumn = 1;
}
else
{
CurrentColumn += 1;
}
CurrentRow = 1;
}
else
{
CurrentRow += 1;
}
}
else
{
bValue+=SerialData;
}
}
}
[...]