LCD  Ausgabe formatieren

Hallo,

folgende Sache:
Ich will eine Zahl (max. 4stellig) auf einem LCD ausgeben - dahinter die Einheit (in meinem Fall mA)
Welche elegante Möglichkeiten gibt es dass die Einer-Ziffer immer an der selben Stelle ausgegeben wird also z.B. 5mA und 1000mA - da soll sich nichts verschieben.
Habe schon einiges ausprobiert mit scroll und rightToLeft etc.
könnte mit vorstellen dass es für dieses "alltägliche" Problem auch eine ebenso einfache Lösung gibt - deshalb meine Frage an euch - bevor ich anfange hier richtig kranke Konstukte zu programmieren :wink:

Viele Grüsse, Michi

mit oder ohne führende Nullen?
fprint() hast Du schon probiert?

Ansonst fällt mir ein:
if(zahl <10) print(" "); // ein leerzeichen oder auch Zahl Null
if(zahl <100) print(" "); // ein leerzeichen
if(zahl <1000) print(" "); // ein leerzeichen
print zahl;

Grüße Uwe

Hallo Uwe,

Ohne führende Nullen.
fprint() habe ich noch nicht probiert (wusste auch nicht dass das mit lcd.print funktioniert) mache mich gleich mal schlau wie das gehen könnte...

Ansonst fällt mir ein:
if(zahl <10) print(" "); // ein leerzeichen oder auch Zahl Null
if(zahl <100) print(" "); // ein leerzeichen
if(zahl <1000) print(" "); // ein leerzeichen
print zahl;

...so ein ähnliches Konstrukt habe ich mir schon wo abgeschaut - so mache ich es momentan.

Viele Grüsse, Michi

char buffer[7];
sprintf(buffer,"%4imA",zahl);
print buffer;

mit Nullen

char buffer[7];
sprintf(buffer,"%04imA",zahl);
print buffer;

Gruß JKW

Hallo,

Danke auch JKW - habe es auch mit sprintf() probiert - funktioniert auch. :wink:
Mir ist aufgefallen dass das Binary ca 1,5k grösser wird - spielt zwar in diesem Projekt keine grosse Rolle brauche jedoch auch nicht die Mächtigen Funktionen von printf().
Deshalb hab ich mich für die "Space Einfüge Methode" entschieden.

Vielen Dank - hab wieder was gelern!

Viele Grüsse, Michi