Hallo! wieder ne Frage... ich habe einen Wert, der am Display ausgegeben werden soll....ist ein INT-Wert nun komm ich nicht dahinter, warum mir dieser Wert wie folgt ausgegeben wird-> z.b. 140.....richtige Anzeige dann 20......Ausgabe aber 200 ....irgendwie haperts da mit dem Entfernen der 0 und dem Verschieben des Werts bitte um Hilfe!
Hi >....irgendwie haperts da mit dem Entfernen der 0 und dem Verschieben des >Werts Löscht oder überschreibst du das komplette Anzeigefeld? MfG Spess
Rene Trattner schrieb: > Hallo! > wieder ne Frage... > > ich habe einen Wert, der am Display ausgegeben werden soll....ist ein > INT-Wert > > nun komm ich nicht dahinter, warum mir dieser Wert wie folgt ausgegeben > wird-> > > z.b. 140.....richtige Anzeige > dann 20......Ausgabe aber 200 wahrscheinlich, weil du zuerst den Text 140 beginnend in der linken oberen Ecke deiner Anzeige schreibst
1 | +-------------+ |
2 | |140 | |
3 | | | |
4 | +-------------+ |
und dann beginnend in der linken oberen Ecke, den Text "20" drüber schreibst.
1 | +-------------+ |
2 | |200 | |
3 | | | |
4 | +-------------+ |
da aber der Text "20" kürzer ist, als der Text "140", überschreiben die beiden 'Buchstaben' von "20" eben nicht alle 3 vorher dort hin geschriebenen 'Buchstaben' von "140" > ....irgendwie haperts da mit dem Entfernen der 0 und dem Verschieben des > Werts Ich denke, du hast das Problem schon erkannt. > bitte um Hilfe! KOmmt jetzt drauf an, wie du die Ausgabe programmiert hast. Da gibts ja mehrere Möglichkeiten. Am besten zeigst du mal dein Programm, dann kann man genauer darafu eingehen. ABer eines ist fix. Um die Ausgabe von notwendigen Leerzeichen, die 'nicht benötigte Stellen' an der Anzeige löschen, kommst du nicht herum. Darum musst du dich selber kümmern.
:
Bearbeitet durch User
1 | lcd.setCursor(1,1); |
2 | lcd.print("thr."); |
3 | x=throttle_value; |
4 | lcd.setCursor(9,1); |
5 | lcd.print(x); |
6 | lcd.setCursor(17,1); |
7 | lcd.print("PWM"); |
also im Display soll "thr: 33 PWM" stehen sollt ich da eine IF-Schleife machen...sprich, wenn der Wert <100 ist lcd.print (" "+x); geht sowas? dann schreib ich drüber
:
Bearbeitet durch User
Rene Trattner schrieb: >
1 | > lcd.setCursor(1,1); |
2 | > lcd.print("thr."); |
3 | > x=throttle_value; |
4 | > lcd.setCursor(9,1); |
5 | > lcd.print(x); |
6 | > lcd.setCursor(17,1); |
7 | > lcd.print("PWM"); |
8 | >
|
> > also im Display soll "thr: 33 PWM" stehen > > sollt ich da eine IF-Schleife machen... Es gibt keine if Schleifen. Das Wesen einer Schleife besteht darin, dass etwas wiederholt wird. Bei einem if wird kein Code wiederholt. Ein if trifft eine Entscheidung > sprich, wenn der Wert <100 ist > lcd.print (" "+x); > > geht sowas? das wird so direkt nicht gehen. Aber du bist schon auf einem gangbaren Weg
1 | if( x < 100 ) |
2 | lcd.print( ' ' ); |
3 | if( x < 10 ) |
4 | lcd.print( ' ' ); |
5 | |
6 | lcd.print( x ); |
schliesslich brauchst du ja bei Zahlen kleiner als 10 dann ja auch 2 'führende' Leerstellen, um eien zuvor dort stehende 3 stellige Zahl vollinhaltlich zu überschreiben. Und: niemand schreibt dir vor, dass du führende Leerstellen und die Zahl selber in einem einzigen Funktionsaufruf ausgeben musst :-)
:
Bearbeitet durch User
daaaaanke! bin auch grad draufgekommen..habs bissl anders gelöst....geht aber auch if (x<100) {lcd.setCursor(9,1);lcd.print("0"); lcd.setCursor(10,1); lcd.print(x);} if (x>100) {lcd.setCursor(9,1);lcd.print(x);}
Rene Trattner schrieb: > daaaaanke! > > bin auch grad draufgekommen..habs bissl anders gelöst....geht aber auch > > if (x<100) > {lcd.setCursor(9,1);lcd.print("0"); > lcd.setCursor(10,1); > lcd.print(x);} > if (x>100) > {lcd.setCursor(9,1);lcd.print(x);} du brauchst nicht für jedes Zeichen einzeln einen setCursor aufrufen. Alle AUsgabegeräte haben so etwas wie einen Cursor. Nach jeder Ausgabe wandert der Cursor weiter, so dass die nächste Ausgabe unmittelbar anschliesst. Man muss ja nicht mutwillig den Rechner mit sinnlosen Aktionen beschäftigen.
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.