mit dem Kommata am Ende ???
da stehts in einer int deklaration :
und nicht mitten im Code , wo man mit einem " ;" abschliessen sollte...Code:int textX = matrix.width(), textMin = sizeof(str) * -12, hue = 0;
mit dem Kommata am Ende ???
da stehts in einer int deklaration :
und nicht mitten im Code , wo man mit einem " ;" abschliessen sollte...Code:int textX = matrix.width(), textMin = sizeof(str) * -12, hue = 0;
Geändert von oderlachs (21.03.2014 um 10:51 Uhr)
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Das hier geht bei mir:
Eingabe:Code:String inText = ""; int l = 0; void setup() { Serial.begin(9600); } void loop() { if (inText !="") { Serial.print("Text: "); Serial.println(inText); Serial.print("Laenge: "); Serial.println(l); inText = ""; } } void serialEvent() { l = 0; while (Serial.available() > 0) { char inChar = Serial.read(); inText += inChar; delay(3); l++; } }
12345678901234567890
Ausgabe:
Text: 12345678901234567890
Laenge: 20
verwendet: Uno + Arduino IDE Serieller Monitor
Bestens ...klappt bei mir auch, allerdings erst ab Arduino Version >= 1.0 auch Ardu-Uno usw...
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Oder in kurz:
Code:String inText = ""; void setup() { Serial.begin(9600); } void loop() { if (inText !="") { Serial.print("Text: "); Serial.println(inText); Serial.print("Laenge: "); Serial.println(inText.length()); inText = ""; } } void serialEvent() { while (Serial.available() > 0) { inText += (char) Serial.read(); delay(3); } }
Vielen dank für eure Hilfe.
Das Problem tritt nur auf wenn folgende Zeile im Code vorhanden ist.
RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, true);
nehme ich diese Zeile raus nimmt der Text String auch alle zeichen an.
Das nutzt nur nichts da das RGB Display dann nicht mehr Funktioniert.
Habi ihr vieleicht noch eine Idee wie ich folgende Variabele mit den Seriellen Daten füttern kann ?
char str[] PROGMEM = "";
Im Beispiel ist diese Zeile im definitionsbereich.
char str[] PROGMEM += inChar;
Prodoziert eine Fehlermeldung.
expected initializer before '+=' token
Danke und Gruß
Claus
1. PROGMEM lässt die Variable im Flash speichern, statt im SRAM. Hab noch nicht genau verstanden, warum das hier gebraucht wird...Habi ihr vieleicht noch eine Idee wie ich folgende Variabele mit den Seriellen Daten füttern kann ?
char str[] PROGMEM = "";
Im Beispiel ist diese Zeile im definitionsbereich.
char str[] PROGMEM += inChar;
Prodoziert eine Fehlermeldung.
expected initializer before '+=' token
2. char str[] liefert ein Array aus Chars alias C-String. Dies ist kein String-Objekt, kann daher auch nicht 'mal eben' erweitert werden. Daher funktioniert auch '+=' nicht.
3. Die Variable wurde mit char str[] PROGMEM = ""; schon initialisiert. Eine zweite Initialisierung macht daher keinen Sinn.
'Füttern':
Code:char str[5]; str[0] = 'd'; str[1] = 'o'; str[2] = 'o'; str[3] = 'f'; str[4] = '\0';
Geändert von Sisor (24.03.2014 um 22:14 Uhr)
So
Problem gelöst.
Ich habe den UNO gegen einen MEGA getauscht und schon gehen locker 50 Zeichen.
Also falls jemand mal dieses Display nutzen möchte nehmt gleich nen MEGA.
Der UNO hat zu wenig Speicher.
In der IDE hat man noch jeweils ca 80% Speicher frei was aber nicht stimmt.
Die Libery frisst wohl richtig Speicher.
Danke für eure Hilfe.
Claus
Lesezeichen