Forum: Mikrocontroller und Digitale Elektronik Benutzerdefinierte Zeichen HD44780


von Oliver J. (skriptkiddy)


Lesenswert?

Ich frage mich wie das Möglich ist:
http://www.youtube.com/watch?v=u7EC-Eklnis
http://ssl.bulix.org/projects/lcd4linux/attachment/wiki/Features/bar-h.png

Die Bargrafen werden aus 5x8 Zeichen zusammengesetzt. Davon kann man 
aber höchstens 8 in einem HD44780-Display definieren. Für die korrekte 
Darstellung von solchen gesplitteten Bargrafen sind aber mehr als 8 
verschiedene Zeichen notwendig.

Wie machen die das?

Gruß Oliver

von Andy K. (notandy)


Lesenswert?

Es können 8 verschiedene benutzerdefinierte Zeichen gleichzeitig 
angezeigt werden, aber niemand verbietet es zwischen den Refresh neue 
Zeichen hochzuladen :)

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Ja wie mich ich das... (der Code ist nämlich von mir)

Richtig, es gibt nur 8 frei definierbare Zeichen. Die "Split-Bars" 
brauchen aber mehr. Dazu kommt noch, dass man ein Zeichen, welches 
gerade am Display dargestellt wird, besser nicht umdefiniert, weils 
sonst zu kurzen aber häßlichen Artefakten kommt.

Deshalb wird versucht, ein möglichst ähnliches Zeichen zu finden. z.B. 
hast du ein "Ende" eines Balkens, wo die obere Hälfte voll (6 Pixel), 
die untere Hälfte nur 2 Pixel breit sein soll. Es gibt kein freies 
zeichen mehr, aber eins mit oben 6 unten 1 Pixel, dann wird halt dieses 
genommen.

Weiter eingeschränkt wird dies dadurch, dass ein Zeichen welches oben 
oder unten 6 bzw. null pixel hat, nicht verändert werden darf, es könnte 
"in der Mitte" eines Balkens vorkommen, und damit "Löcher reissen".

Auch nicht unbedingt einfacher wirds dadurch, dass bars gleichzeitig in 
alle vier Himmelsrichtungen laufen können, und das ein paar der 8 freien 
zeichen durch icons belegt sein können.

Wenn du nicht sonderlich suizidgefährdet bist, kannst dir ja mal das 
bar-handling in der drv_generic_text.c ansehen :-)

von Falk B. (falk)


Lesenswert?


von Falk B. (falk)


Lesenswert?


von Yan Q. (yan_q)


Lesenswert?

HD44780 nicht erfüllen können Sie 8 sittlichen Anforderungen

Wenn die Definition der zu viele Zeichen, können Sie mit dem 
T6963-Controller LCM oder andere
Weniger als 112 Zeichen haben, können Sie die MCU + GLCD Ansatz. MCU 
integriert in 112 Zeichen, aber MCU müssen ein Programm schreiben

yan.q

von René B. (reneb)


Lesenswert?

Yan Q. schrieb:
> ...
> yan.q
War das jetzt ein Babelfish-Troll oder ernst gemeint?

von Sushi (Gast)


Lesenswert?

in dem video werden doch auch keine wunder vollbracht. als 4 statische 
custom chars haben die den vollen block, den leeren block, den halbblock 
oben und den halbblock unten. die werden halt so oft dargestellt, wie 
benötigt. (es steht ja nirgendswo, das man ein custom char nur einmal in 
der anzeige benutzen darf)

was dann noch fehlt ist für jede bargraph-spitze das speziell berechnete 
zeichen.

damit sind dann alle 8 custom chars belegt.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Im Video vielleicht nicht, aber in der Praxis sind das schon kleine 
Wunder: Ein Split-Bar kann theoretisch zwei spezielle Spitzen haben, 
wenn diese nicht innerhalb desselben Zeichens liegen (eine Spitze eher 
links, eine Spitze eher rechts)

Weiters funktioniert das auch für mehr oder weniger beliebig viele bars 
gleichzeitig (interessant bei größeren Displays 20x4 oder so)

da kommst du schnell mal auf 12 und mehr theoretisch notwendige Zeichen.

von Sushi (Gast)


Lesenswert?

du hast nur 8 custom chars vom controller aus.
du kannst die wertvollen zeichen sparen, wenn du von den statischen 
zeichen welche im cgrom wiederfindest.
wenn ein bargraph auf eine zeichenkante fällt, braucht der auch kein 
custom char dafür. ähnlich sieht es aus, wenn 2 spitzen in ein zeichen 
fallen (ein zeichen statt zwei).

wenn du dann immer noch nicht genug freie zeichen hast, mußt du mit der 
auflösung der bargraphen runter gehen (anstatt spaltengenau auf 
zeichengenau). fällt vermutlich nur auf, wenn man auf die ungenaue 
stelle schaut und weiß, dass der fehler da ist.

die bargraph haben grenzen, aber ich glaube um die zu sehen, muß man 
sehr genau schauen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Sushi schrieb:
> du kannst die wertvollen zeichen sparen, wenn du von den statischen
> zeichen welche im cgrom wiederfindest.

Ja, speziell weil die statischen zeichen überall die gleichen sind :-(

Vergiss es.

nciht mal der Ausgefüllte schwarze Block ist standardmäßig überall 
vorhanden. Diese Display leiden dann unter dem "Portishead-Syndrom"

von Walter T. (nicolas)


Lesenswert?

"Portishead-Syndrom" ?

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Nicolas S. schrieb:
> "Portishead-Syndrom" ?

Du kriegst ein invertiertes P (weisses P auf schwarzem grund) statt 
eines schwarzen Blocks.

von Oliver J. (skriptkiddy)


Lesenswert?

Vielen Dank für die Infos. Werde mir das bei Gelegenheit mal zu Gemüte 
führen.


Gruß Oliver

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
Noch kein Account? Hier anmelden.