Forum: Mikrocontroller und Digitale Elektronik 2 dim. CHAR- Arrays dynamisch gestalten


von Frank N. (frank_aus_wob)


Lesenswert?

Hallo,

ich habe ein 2 dimensionales CHAR-Array. Ich möchte aber keinen 
feststehenden Text definieren, sondern Variablen angeben. Z.B. 
Temperatur, Datum, Zeit, usw. Wie muß ich das programmieren? Hat jemand 
eine Lösung?

1
char  *pc[]
2
{
3
  "hier Variable 1",
4
  "hier Variable 2",
5
  "hier Variable 3",
6
};

Gruß
Frank

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Frank N. schrieb:
> Temperatur, Datum, Zeit, usw.

Das klingt nach drei Dimensionen oder mehr.

Wie wäre es mit einem 1-dimensionaen Array of struct?
https://stackoverflow.com/a/32185804/3303008

Und was meinst Du mit "dynamisch gestalten"?

von Markus F. (mfro)


Lesenswert?

Frank N. schrieb:
> ich habe ein 2 dimensionales CHAR-Array.

Hast Du nicht.

Frank N. schrieb:
> char  *pc[]

das ist kein zweidimensionales char-Array.

... und was Du eigentlich machen willst, habe ich nicht verstanden.

von Frank N. (frank_aus_wob)


Lesenswert?

Hallo,

vielen Dank für Eure Antworten. Ich möchte gerne auf die Fragen 
eingehen, um das Problem gelöst zu bekommen.

mein Ziel: Daten eines Uhrenmoduls einem Sketch für Laufschrift zu 
übergeben und die Daten dementsprechend als Laufschrift darzustellen.

vorhanden ist:  Arduino UNO, DS3231 Uhrenmodul, Sketch Parola für die 
Laufschrift

mein Problem: kann die Variablen vom Uhrenmodul nicht korrekt übergeben.

Hier die Variablendeklaration vom Uhrenmodul. Funktioniert.
1
char wandelDatum[20];
2
  sprintf(wandelDatum, "%02d.%02d." , Tag, Monat);
3
  char wandelZeit[20];
4
  sprintf(wandelZeit, "%02d:%02d:%02d" , Stunde, Minute, Sekunde);
5
6
  String Text;
7
  Text = Wochen_Tag + " " + String(wandelDatum) + " " + String(wandelZeit) + " Temperatur: " + String(Temperatur) + " C";


Hier die Programmierung aus dem übernommenen Sketch für das Lauflicht.
Ich möchte den feststehenden Text (hier Variable 1, hier Variable 2, 
hier Variable 3) durch Variablen ersetzen. Diese Variablen können 
Temperatur, Zeit, Datum ,.... sein, deren Werte sich ständig ändern. Es 
können auch mehr als 3 Variablen sein - je nach dem was ich anzeigen 
lassen möchte. Da möchte ich möglichst frei sein.
1
// Global variables
2
uint8_t  curText;
3
4
char  *pc[]
5
{
6
  "hier Variable 1",
7
  "hier Variable 2",
8
  "hier Variable 3",
9
};


Die nachfolgenden Programmzeilen verarbeiten dann die Variablen curText 
bzw. *pc[].

1
if (P.displayAnimate()) // animates and returns true when an animation is completed
2
  {
3
    // Set the display for the next string.
4
    curText = (++curText) % ARRAY_SIZE(pc);
5
    P.setTextBuffer(pc[curText]);
6
    // When we have gone back to the first string, set a new exit effect
7
    // and when we have done all those set a new entry effect.
8
    if (curText == 0)
9
    {
10
      outFX = (++outFX) % ARRAY_SIZE(effect);
11
      if (outFX == 0)
12
      {
13
        inFX = (++inFX) % ARRAY_SIZE(effect);
14
        if (inFX == 0)
15
          P.setInvert(!P.getInvert());
16
      }
17
18
      P.setTextEffect(effect[inFX], effect[outFX]);
19
    }


Ich hoffe mich verständlich ausgedrückt zu haben und sehe euren 
Antworten mit großem Interesse entgegen. Vielen Dank vorab für eure 
Mühe.

Gruß
Frank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.