Moin!
Ja, ich bin auch noch da.
Muss aber gleich mal weg!
Die Idee mit dem "Cls" wäre eine Möglichkeit......
Diesmal würde das Display aber nicht flackern, weil wir es ja nur EINMAL löschen würden.
Das Konvertieren von Byte in String ist natürlich auch eine Möglichkeit.
Je nach Displaytyp und Anwendung wirst du dies später sowieso machen (müssen).
Zur Zeit lassen wir das Thema aber erst einmal unbeachtet.
Wenn ich mich recht erinnere, hast du ein 16x2 Zeichen Display.
Wie oben schon geschrieben, bleibt ja nun dummerweise an der 13. Stelle im Display noch die "9" stehen.
Was lernen wir daraus?
Wenn wir etwas nicht programmieren, wird es auch nicht von selber passieren..... auch wenn unser Gehirn es für selbstverständlich hält.
Wir lernen aber noch etwas daraus.
Wenn wir einmal etwas auf das Dispaly "schreiben" bleibt es solange dort stehen, bis wir es wieder entfernen.
Diese Eigenschaft können wir uns auch zu Nutze machen.
Bis jetzt haben wir einmal in der Sekunde das Display "komplett" neu beschrieben.
War das eigentlich notwendig?
Letztlich haben sich doch immer nur die Werte der Zähler-Variablen geändert.
Die Texte waren doch immer die Selben!
Wenn also das oben geschriebene mit dem LCD stimmt, dann müssten wir doch ganz zu Anfang nur einmal das Display mit den Texten beschreiben.
Also:
Code:
Locate 1 , 1
Lcd "Zaehler1 = "
Locate 2 , 1
Lcd "Zaehler2 = "
Solange wir dies nicht wieder entfernen, oder überschreiben, wird es im Dispaly immer stehen bleiben.
Nun müssen wir nur noch die Variablenwerte an die richtige Stelle zum Display schicken.
Demnach so:
Code:
Locate 1 , 12
Lcd Zaehler1
Locate 2 , 12
Lcd Zaehler2
Genauso können wir verfahren, wenn wir die Zahlen im Display wieder löschen wollen:
Code:
Locate 1 , 12
Lcd " " 'zwei Leerzeichen eingeben
Locate 2 , 12
Lcd " " 'zwei Leerzeichen eingeben
In den Zeichen 1 bis 11 des Displays steht dann immer noch der Text!
Die Zeichen 12+13 haben wir nun durch Leerzeichen ersetzt.
Es müsste dann so aussehen:
Zaehler1 =
Zaehler2 =
Nun kann das Zählen und Anzeigen wieder von vorn beginnen.
Was wäre also zu tun?
VOR der Hauptschleife (Lo-Loop) EINMAL die Textausgabe für das Display realisieren.
Jeden Zähler zurück setzen und die Zeichen 12+13 beider Zeilen mit Leerzeichen überschreiben.
Nun musst du noch die Ausgabe und die Position der Zählerwerte anpassen und.....
Fertig.
Wenn du alles verstanden hast, dann sollte das Umbauen des Programmes ein leichtes sein.
Probiere es einfach mal.
Gruß,
Cassio