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
Es können 8 verschiedene benutzerdefinierte Zeichen gleichzeitig angezeigt werden, aber niemand verbietet es zwischen den Refresh neue Zeichen hochzuladen :)
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 :-)
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
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.
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.
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.
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"
Nicolas S. schrieb: > "Portishead-Syndrom" ? Du kriegst ein invertiertes P (weisses P auf schwarzem grund) statt eines schwarzen Blocks.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.