Arduino Forum

Forum 2005-2010 (read only) => International => Deutsch => Topic started by: komputer on Jan 23, 2011, 10:50 am

Title: LCD  Ausgabe formatieren
Post by: komputer on Jan 23, 2011, 10:50 am
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 ;-)

Viele Grüsse,   Michi
Title: Re: LCD  Ausgabe formatieren
Post by: uwefed on Jan 23, 2011, 11:19 am
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
Title: Re: LCD  Ausgabe formatieren
Post by: komputer on Jan 23, 2011, 02:16 pm
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...

Quote
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
Title: Re: LCD  Ausgabe formatieren
Post by: jkw on Jan 23, 2011, 02:29 pm
Code: [Select]
char buffer[7];
sprintf(buffer,"%4imA",zahl);
print buffer;


mit Nullen

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


Gruß JKW
Title: Re: LCD  Ausgabe formatieren
Post by: komputer on Jan 23, 2011, 06:48 pm
Hallo,

Danke auch JKW - habe es auch mit sprintf() probiert - funktioniert auch. ;-)
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