Go Down

Topic: Formatierte Ausgabe auf LCD (Read 751 times) previous topic - next topic

marau

Hallo zusammen,

ich würde gerne die Uhrzeit mit führenden Nullen formatiert auf mein LCD ausgeben, also z.B. 12:09:04.

Mit meinen derzeit noch bescheidenen Kenntnissen in C bekomme ich das nicht hin.

Kann mir jemand von Euch einen Tipp geben?

Wahrscheinlich ist das gar nicht kompliziert, aber manchmal sieht man den Wald vor lauter Bäumen nicht...


Danke u. Grüße

Martin

markbee

Du könntest z.B. abfragen, ob die Stunde, Minute oder Sekunde < 10 ist und dann entsprechend eine führende 0 davor setzen.
XBee blog: http://lookmanowire.blogspot.com/

marau

Hallo,

vielen Dank!

Manchmal kommt man selbst nicht auf die einfachsten Lösungen!


Gruß

Martin

jurs


ich würde gerne die Uhrzeit mit führenden Nullen formatiert auf mein LCD ausgeben, also z.B. 12:09:04.


Schau Dir mal die Formatierung mit sprintf() an!

Codebeispiel:
Code: [Select]

 char buf[64];
 int Stunden,Minuten,Sekunden;
 sprintf(buf,"Laufzeit: %02d:%02d:%02d",Stunden,Minuten,Sekunden);
 Serial.println(buf)


michael_x

Ein Byte mit Werten 00 .. 99 in zwei char ablegen:

Code: [Select]
void setByte(char * target, byte val)
{
    *target++ = val/10  + '0';  // Zehnerstelle 
    *target     = val%10 + '0';  // modulo oder Rest
}

/// Verwendung:

char time[] = "12:34:56";

byte minute=54;
byte sekunde = 32;
setByte(time+3,minute); // time hat jetzt den Wert "12:54:56"
setByte(time+6,sekunde); // time hat jetzt den Wert "12:54:32"


wenn man sonst kein sprintf in seinem Sketch hat, wird der code deutlich kleiner.
Wie üblich ist die Fehlerbehandlung:  garbage in -> garbage out

marau

Hallo zusammen,

vielen Dank an alle Helfer.

Ich habe mich für die Lösung mit sprinf entschieden.


Grüße

Martin

Go Up