Hallo, ist es möglich mit der LCD lib von Fleury Text rechtsbündig auszugeben? (Suchfunktion zwecklos, wegen schlecht beschriebener Betreff's der Beiträge) Ich habe vor diverse Messwerte auf einem 2x16 LCD auszugeben. In jeder Zeile sollten es zwei Messwerte sein, da sich die Werte ständig ändern können, also sich die Länge (Zeichenanzahl) verändert, möchte ich das die Maßeinheiten immer an der selben Stelle stehen und sie sich nicht nach vorne (wenn der Wert kleiner wird) oder nach hinten (wenn der Wert sich vergrößert) verschieben. Ich hoffe ihr könnt mein Problem nachvollziehen. Wenn nicht dann sollte euch das hier weiterhelfen: 10000RPMxxx199°C //Eine Zeile mit 16 Zeichen, x sind Leerstellen 5000RPMxxxx99°Cx //Der Wert verringert sich, so will ich es aber nicht! x5000RPMxxxx99°C //So sollte es sein, keine Verschiebeung der Maßeinheiten Beim "normalen" ausgeben, muss man ja nur die Startposition angeben und es wird linksbündig ausgegeben. Ich steh irgendwie auf dem Schlau, vielleicht sehe ich den Wald vor lauter Bäumen nicht mehr. Deshalb helft mir etwas auf die Sprünge. Danke. Frohe Weihnachten
ich würde mir eine toString Funktion schreiben, in etwa so char buf[16]; int zahl=12345; int i int divisor=10000; // 5 Stellen for (i=0; i < 5; i++) { buf[i]=(zahl / divisor) % 10 +'0'; divisor=divisor / 10; } buf[5]=0; // String terminieren i=0; // Führende 0 durch space ersetzen while (buf[i] == '0') { buf[i]=' '; i++; } /* ungetestet */ Gruß Roland
Wenn Speicherplatz kein Problem ist, löst (sn)printf() das Problem: printf("Wert: %8d", wert) Wert wird mit führenden Leerzeichen auf acht Stellen Breite ausgegeben.
Danke für die Antworten @Rufus deine Idee scheint die Einfachste zu sein. Aber weiss meinst du mit (sn)?
@Rufus Wenn aber Speicherplatz Problem ist: char buffer(17); int zahl; lcd_gotoxy(0,0); lcd_puts("1000RPM); lcd_gotoxy(11,0) lcd_puts(" ");// Alte Wert löschen if(zahl>99) lcd_gotoxy(11,0); if(zahl>9) lcd_gotoxy(12,0) else lcd_gotoxy(13,0); itoa(zahl,buffer,10); lcd_puts(buffer); lcd_puts("\xf8\x43");//°C Ausgabe Gruß Branko
@Steffen H: sprintf gibt den formatierten Text in eine Stringvariable aus, snprintf achtet auch noch darauf, daß die Stringvariable ausreichend groß ist und vermeidet so die berüchtigten Buffer overflows. Je nach Ansteuerung des Displays/je nach Compiler landen die Ausgaben von printf irgendwo anders (serielle Schnittstelle etc.), während die mit s/snprintf beschriebene Stringvariable mit lcd_puts gezielt ans Display geschickt werden kann. Das kann in bestimmten Situationen sinnvoll sein.
man kann doch beim lcd die adresse setzen und auf decrement stellen
bin eigentlich voll der noob und kenn mich mit bildschirmen nicht ganz so doll aus, möchte aber wissen, ob es möglich ist, dass ein lcd-bildschirm schaden nimmt, wenn er, nachdem der pc runtergefahren ist, einfach von stromnetzt abgeschaltet wird, nichts standby oder ausschalten, einfach strom weg, während er noch läuft... ich befürchte dass die lc´s eben in ihrer struktur oder position oder sonst was verändert werden, und das, wenn vielleicht nicht gleich ganz zum knock out, aber doch zu einigen bildstörungen führen könnte, also, wäre super wenn mir irgendwer irdendwie weiterhelfen könnte... danke im voraus
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.