Kontinuierlicher Bargraph auf x-Zeichen LCDs

Gast #3765235
Lesenswert?

Weil diese Displays keine durchgängigen Pixel haben, sondern sich 
jeweils eine Lücke zwischen den einzelnen Zeichen befindet, lässt sich 
ein kontinuierlicher Bargraph mit drei selbstdefinierten Zeichen 
darstellen.
Da wo es keine Pixel gibt muss auch nichts angezeigt werden.

Bei einem 8 stelligen Display sind dann also 24 Balken möglich. Der 
anzuzeigende Wert muss hier auf 0 bis 24 skaliert werden.
Eine simple Schleife mit 8 Durchläufen zieht vom Anzeigewert jeweils den 
Wert 3 ab und prüft auf Überlauf. Solange kein Überlauf stattfindet wird 
das Sonderzeichen 3 mit drei Balken geschrieben. Findet ein Überlauf 
statt, wird je nach Restwert das Sonderzeichen 2 oder 1 geschrieben. 
alle restlichen Zeichen werden mit Leerzeichen überschrieben. D.h. bei 
jeder Aktualisierung des Balkens werden immer alle 8 Zeichen geschrieben 
und dadurch die vorherige Anzeige überschrieben.
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #3765361
Lesenswert?

Es geht hier doch schon überhaupt nicht darum, dass man seine eigenen 
Zeichen in ein Display bekommt. Sondern es geht darum, die eigentlich 
störenden Abstände mit in den Balken aufzunehmen. Und ich finde, das 
hier ist eine schnuckelige Idee.

Ich bin mir nicht sicher, ob da jeder drauf gekommen wäre. Auf jeden 
Fall kenne ich bei einigen Geräten nur die Variante mit 5 
selbstdefinierten Zeichen und Lücken zwischendrin...
Gast #3765402
Lesenswert?

Lothar schrub:
>Sondern es geht darum, die eigentlich
>störenden Abstände mit in den Balken aufzunehmen. Und ich finde, das
>hier ist eine schnuckelige Idee.

So ist es, aber das ist von den Nölern nicht erkannt worden.
:-(

MfG Paul
#3765424
Lesenswert?

@ Lothar Miller (lkmiller) (Moderator) Benutzerseite

>störenden Abstände mit in den Balken aufzunehmen. Und ich finde, das
>hier ist eine schnuckelige Idee.

Nur ist das rein gar nicht kontinuierlich, bestenfalls gleichmäßige 
Lücken ;-)


>Ich bin mir nicht sicher, ob da jeder drauf gekommen wäre. Auf jeden
>Fall kenne ich bei einigen Geräten nur die Variante mit 5
>selbstdefinierten Zeichen und Lücken zwischendrin...

Die so schlecht nicht ist, da es eh kein vollgrafisches LCD ist.
Es ist und bleibt ein netter Workaround.
Moderator (Firma: Titel) Persönliche Seite #3765450
Lesenswert?

Paul Baumann schrieb:
> aber das ist von den Nölern nicht erkannt worden.
Oder sie können es nicht zugeben. Ich habe den Witz an der Sache auch 
erst beim zweiten Blick erfasst...

Falk Brunner schrieb:
>> Auf jeden >Fall kenne ich bei einigen Geräten nur die Variante mit 5
>> selbstdefinierten Zeichen und Lücken zwischendrin...
> Die so schlecht nicht ist, da es eh kein vollgrafisches LCD ist.
Schon, aber dann musst du schon wieder überlegen: werden die Werte für 
die Zeichenzwischenräume mit eingerechnet oder übersprungen?

Beim Einrechnen fehlen zwischendurch Werte, weil die ja in den Lücken 
sitzen und die Lücken nichts anzeigen können. Beim Überspringen kommt 
immer nach 5 Inkrementen ein Sprung. Beides ist unschön.
Gast #3765476
Lesenswert?

Lothar Miller schrieb:
> werden die Werte für
> die Zeichenzwischenräume mit eingerechnet oder übersprungen?

da wird nichts eingerechnet. In jedem Zeichen sitzen einfach zwei 
künstliche Lücken, damit es zur folgenden zwangsweisen Lücke zwischen 
den Zeichen passt. Die Schleife die den Bargraph erzeugt ist so simpel, 
dass es kaum einfacher geht. Die Schleife zieht einfach so oft wie es 
ganzzahlig geht den Wert 3 ab und schreibt dabei das Zeichen mit den 
drei Balken hin. Dann nimmt sie den Restwert und ruft damit das passende 
Zeichen mit zwei oder einem Balken aus dem CGRam auf. die restlichen 
Schleifendurchläufe werden dann nur noch mit Leerzeichen überschrieben. 
Die Durchlaufzeit ist dadurch jedesmal nahezu identisch und flackern tut 
da auch nichts.
Gast #3765516
Lesenswert?

Falk Brunner schrieb:
> gleichmäßige Lücken
Richtig, das war die eigentliche Idee bei dieser Sache. Ebenso dass die 
Bargraphroutine mit wenigen Assemblerzeilen auskommt.

Anbei noch ein Beispiel.
Ein kleines Tool mit 4x20 LCD, das beim Carrera D-143 System die Daten 
der drei Handregler von der Schiene liest, decodiert und anzeigt.
3 Bit Reglernummer, ein Tastenstatusbit und 4 Bit für die 
Geschwindigkeitsinformation. Die restlichen 6 Datenpakete werden nicht 
ausgewertet, da sie beim D-143 nicht verwendet werden.
Angehängte Dateien:
#3765590
Lesenswert?

@ :-) (Gast)

>> gleichmäßige Lücken
>Richtig, das war die eigentliche Idee bei dieser Sache.

Das hat wenigstens den Vorteil, dass man die Striche zählen kann, so wie 
auf dem Bierdeckel ;-)

> Ebenso dass die
>Bargraphroutine mit wenigen Assemblerzeilen auskommt.

Optimierungswahn? Selbst in nicht perfektem C ist das so wenig, dass es 
praktisch unter den Tisch fällt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren