INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Variablen zu einem CHAR verbinden und einbinden
01.01.2019, 19:17
Beitrag #1
Variablen zu einem CHAR verbinden und einbinden
Hallo und ein frohes neues Jahr 2019!!

Hier mein Problem:

Ziel:
DS3231 Variablen (Datum, Uhrzeit, Temperatur, Wochentag) und eigenen Text zu einem CHAR zusammenführen, um diesen dann in einer Laufschrift darzustellen. Für die Laufschrift benutze ich einen Sketch von PAROLA.

Ausgangssituation:
Die DS3231 Variablen liegen in folgender Form vor:

//----------VARIABLEN-----------

byte Sekunde, Minute, Stunde, Wochentag, Tag, Monat, Jahr;
float Temperatur;
String Wochen_Tag;
String Text;


Diese habe ich zu dem String "Text" zusammengeführt:

char wandelDatum[20];
sprintf(wandelDatum, "%02d.%02d." ,Tag, Monat);
char wandelZeit[20];
sprintf(wandelZeit, "%02d:%02d:%02d" ,Stunde, Minute, Sekunde);

String Text;
Text = Wochen_Tag + " " + String(wandelDatum) + " " + String(wandelZeit) + " Temperatur: " + String(Temperatur) + " C";

Nun wollte ich diesen String an den PAROLA Programmteil übergeben. Dieser erwartet allerdings eine CHAR-Variable. So ist es von Parola vorgegeben:

// Global variables
uint8_t curText;
char *pc[] =
{
"Parola for",
"Arduino",
};


In der LOOP folgende Anweisung:

if (P.displayAnimate()) // animates and returns true when an animation is completed
{
// Set the display for the next string.
curText = (++curText) % ARRAY_SIZE(pc);
P.setTextBuffer(pc[curText]);

// When we have gone back to the first string, set a new exit effect
// and when we have done all those set a new entry effect.
if (curText == 0)
{
outFX = (++outFX) % ARRAY_SIZE(effect);
if (outFX == 0)
{
inFX = (++inFX) % ARRAY_SIZE(effect);
if (inFX == 0)
P.setInvert(!P.getInvert());
}

P.setTextEffect(effect[inFX], effect[outFX]);
}

// Tell Parola we have a new animation
P.displayReset();
}


Frage zur Lösung:

Wie sieht der Programmcode aus, um meine DS3231 Variablen und persönliche Texte an die PAROLA Variable "curText" bzw. *pc[] übergeben zu können?

Vielen Dank im Voraus für Eure Hilfe.

Gruß
Frank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2019, 19:53 (Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2019 19:55 von Chopp.)
Beitrag #2
RE: Variablen zu einem CHAR verbinden und einbinden
Hallo,
Code Bitte immer in Code Tags setzen.
Wie das geht steht hier.

Dann hast du noch das Problem mit den String.
Das Problem wird noch größer, da damit dein Speicher fragmentiert.
Es ist praktisch nur eine Frage der Zeit je nachdem wie lange das so läuft.
Es haben sich einige gewundert, wenn der Arduino sich aufhängt,
weil es Speicherprobleme gibt.
Eine gute Erklährung gibt es hier.
Gruß, Markus

Immer in Stress
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2019, 20:44
Beitrag #3
RE: Variablen zu einem CHAR verbinden und einbinden
Hallo,

die String-Problematic hängt stark vom verfügbaren Ram und der Art der Nutzung von Strings ab.
Da ich den benutzen Controller und dessen Ramgröße nicht kenne und auch den Rest des Sketches nicht, trotzdem der Hinweis zum String:
Text.c_str() übergibt den String als C-String passend.
Beschreibung der String-Klasse lesen...

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2019, 09:07
Beitrag #4
RE: Variablen zu einem CHAR verbinden und einbinden
Die fehlenden Infos stelle ich auch in den Raum. Als saubersten Weg sehe ich die Arbeit mit C-Strings, also Chararrays. Strcpy und strcat, sowie itoa oder sprintf.

Infos dazu

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  wie kann ich ausgangspins aus einem array steuern? uwe.z 4 231 04.11.2019 21:46
Letzter Beitrag: Holzauge
  string in char wandeln TT-Tom 3 209 04.11.2019 17:20
Letzter Beitrag: TT-Tom
  PWM springt bei einem bestimmten Wert auf High fingerpfeifer 18 919 16.10.2019 22:31
Letzter Beitrag: fingerpfeifer
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 593 14.10.2019 14:48
Letzter Beitrag: Thorsten_S
Question Mega2560 / Nano mit nRF24L01 verbinden R_M 1 240 08.10.2019 18:47
Letzter Beitrag: Tommy56
  Servo in einem Bereich bewegen koksi_92 5 308 08.10.2019 11:28
Letzter Beitrag: MicroBahner
  Steuerprogramm aus Matlab und Daten von Joystick miteinander verbinden Vithushan 2 277 27.09.2019 16:28
Letzter Beitrag: ardu_arne
  Textlänge (char) Array Blende8 3 597 08.04.2019 18:08
Letzter Beitrag: Tommy56
  Wasserverbrauchszähler, statische Variablen, komisches Verhalten in der loop() pzYsTorM 14 1.212 19.03.2019 20:33
Letzter Beitrag: Hilgi
  HttpBasicAuth richtig einbinden Matroks12 2 676 18.03.2019 11:01
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste