Mein Code basiert auf dem Beispiel aus deinem Link.
Da ist auch diese zeile mit drinn
textMin = sizeof(str) * -12,
und das beispiel Funktioniert ja auch.
Mein Code basiert auf dem Beispiel aus deinem Link.
Da ist auch diese zeile mit drinn
textMin = sizeof(str) * -12,
und das beispiel Funktioniert ja auch.
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)
Lesezeichen