Christoph B. schrieb:
> hallo
>
> was komisch ist das ich wenn ich das erste mal beim "Hochdrehen" vom ADC
> Werte von 0-1023 bekomme. Beim zweiten mal habe ich am anfang 04XX
> (0V)
Du hast nicht 04XX sondern du hast dort 0XXX stehen. Die 0 stammt von
der Zahl, die XXX von dem was vorher dort stand. Bei dir ist halt das
erste X zufällig eine 4
> und bei 4.8V 9XXX stehen.
dann steht da etwas in der Größenordnung von 980X
Die 980 sind real und der Messwert. Die X stehen immer noch von vorher
dort (als dein Messwert irgendwann größer als 999 war)
> Bei 5V zeigt es wieder 1023 an.
logisch. größer als 4 Stellen kannst du nicht kommen. Und wenn 1023
ausgegeben wird, hast du wieder alle 4 Stellen überschrieben.
> Da nützen mich auch die Leerzeichen nichts.
Doch das tun sie. Du musst nur nach deiner Zahl ein paar Leerzeichen
ausgeben, die dafür sorgen, dass nach einer Ausgabe von zb 4 (also einer
einstelligen Zahl) eventuelle Reste von 15 (also einer zweistelligen
Zahl) überschrieben werden. Denn sonst steht auf deinem Display nicht 4
sondern 45.
Wie schon gesagt: Es wird genau das ausgegeben, was du angibst, dass
ausgegeben werden soll. Nicht mehr und nicht weniger. Es liegt an dir,
das so zu programmieren, dass beim Überschreiben Teile die nicht mehr
gebraucht werden auch tatsächlich 'weggelöscht' (in Form von 'mit
Leerzeichen überschrieben') werden. Deine Ausgabetreiber führen da nicht
Buch darüber, was an welcher Stelle ausgegben wurde und löschen das
Überzählige bei Bedarf. Wenn du eine 4 stellige Zahl 1023 mit einer
3-stelligen Zahl 876 überschreibst, dann bleibt die 3 von 1023 am LCD
stehen, denn durch 876 ist die ja nie überschrieben worden. Am LCD steht
dann 8763. Gibst du aber nach der Zahl 876 noch zusätzlich (mindestens)
1 Leerzeichen aus, dann überschreibt dir dieses Leerzeichen auch noch
die 3 und am LCD steht dann tatsächlich 876, so wie es sein soll.