Moin, ist es möglich die Libary von Peter Fleury so zu bearbeiten, dass man direkt mit einem Befehl, direkt Zeichen aus dem Zeichengenerator anzeigen kann? hat da jemand schon was fertiges ?
Jan schrieb: > Moin, > > ist es möglich die Libary von Peter Fleury so zu bearbeiten, dass man > direkt mit einem Befehl, direkt Zeichen aus dem Zeichengenerator > anzeigen kann? lcd_putc( 0 ); // Zeigt das zeichen aus dem CHaracter Generator 0 an lcd_putc( 1 ); // Zeigt das 2-te vereinbarte Character an. D.h. du benutzt einfach die 'Nummer' des benutzerdefinierten Zeichens bei putc
Karl Heinz schrieb: > D.h. du benutzt einfach die 'Nummer' des benutzerdefinierten Zeichens > bei putc ich habe ja keine "Definierten" Zeichen die ich ausgeben möchte... ich würde gerne diesen Balken ausgeben... (siehe Foto)
Jan schrieb: > ich habe ja keine "Definierten" Zeichen die ich ausgeben möchte... > > ich würde gerne diesen Balken ausgeben... (siehe Foto) Ach so. Na, dann gibst du eben seinen ASCII COde an. Der ist 127 lcd_putc( 127 ); Dich scheint zu verwirren, dass man normalerweise lcd_putc( 'A' ); schreibt. Diese Verwirrung ist bis zu einem gewissen Grad normal. :-) Denn was du hier in WIrklichkeit machst, ist auch nichts anderes als den ACII-Code für 'A' anzugeben. Nur tust du es nicht, indem du selber den Code aus der ASCII-Tabelle rausliest, sondern du lässt das den Compiler machen. Denn: In einem Computer gibt es eigentlich keine Zeichen. Alles sind einfach nur Zahlen. Auch ein char enthält letzten Endes einfach nur eine Zahl. Wenn der AVR vom LCD haben will, dass es ein 'B' hinmalt, dann nicht indem es ihm da ein 'B' schickt, sondern indem es ihm den ASCII Code (eine Zahl) für 'B' schickt. Es gibt also eine gegenseitige Vereinbarung darüber, welche Codezahl welchem Buchstaben entsprechen soll. Eben den ASCII Code. Der wird in diesem Fall aber nur an 2 Stellen relevant. Die eine ist der Compiler, der die richtige Codezahl für dein im C-Code vorkommende 'B' raussucht. Und die andere Stelle ist das LCD selber, welches beim Erhalt dieser Codezahl die richtigen Pixel auf schwarz stellen muss, damit dein Gehirn 'B' liest. Und ja. Du kannst in C schreiben
1 | char c; |
2 | |
3 | c = 'A'; |
4 | c = 65; |
5 | c = 0x41; |
6 | c = 0x01000001; |
alle 4 Anweisungen bewirken letzten Endes genau dasselbe. In der Variablen c wird das Bitmuster 01000001 abgelegt. Es ist nur jeweils die Schreibweise eine andere. Wann welche Schreibweise die vorteilhaftere ist, sollte intuitiv klar sein. Aber abgesehen von der Schreibweise sind alle 4 Zuweisungen in allen Punkten identisch.
wie kommst du jetzt auf "127" ? wenn ich diese ASCII Tabelle aufrufe... http://www.tcp-ip-info.de/tcp_ip_und_internet/ascii.gif ist mein Zeichen nicht eher "219" ?! :)
Jan schrieb: > wie kommst du jetzt auf "127" ? wenn ich diese ASCII Tabelle aufrufe... > > http://www.tcp-ip-info.de/tcp_ip_und_internet/ascii.gif > > ist mein Zeichen nicht eher "219" ?! :) jo, aufm PC. Mit IBM-ASCII Codepage 437. Aber nicht auf dem LC-Display Modul, auf dem das Zeichen erscheinen soll. Das hat seinen eigenen Zeichensatz! Dort ist, wie auf der Grafik zu sehen, der Code für den "Balken" 0xFF bzw. 255 dezimal. Bei Zeichen, die ans LCD gesendet werden, muß man natürlich dessen Zeichensatz verwenden, nicht den des PCs.
Jan schrieb: > wie kommst du jetzt auf "127" ? wenn ich diese ASCII Tabelle aufrufe... > > http://www.tcp-ip-info.de/tcp_ip_und_internet/ascii.gif > > ist mein Zeichen nicht eher "219" ?! :) :-) Der 'Balken' den du in deinem ersten Bild eingekreist hast, ist ja eigentlich 255 :-) Im Ernst, ich hab mich einfach am Bild orientiert. Der Balken war links unten, da wo bei einem 7-Bit ASCII das Zeichen mit dem Code 127 (oder eben Hex 0x7F) stehen würde. Ich hab das Bild nicht genau genug studiert. Zumal viele Terminals bei einem Code von 0x7F (oder eben 127) tatsächlich sowas wie einen Balken hinmalt. Aber ich seh schon, du hast das Prinzip begriffen. Und das war ja schliesslich der Zweck der Übung. Vorsicht: Alles über 127 ist vom 7-Bit ASCII Code nicht festgelegt. D.h. da musst du dich nach deinem LCD richten und nicht nach irgendeiner ASCII Tabelle. ASCII ist nur für 7 Bit ( 0 bis 127) überall gleich.
>ist mein Zeichen nicht eher "219" ?! :) Nö, es ist 255. >wie kommst du jetzt auf "127" ? wenn ich diese ASCII Tabelle aufrufe... Diese ASCII Tabelle interressiert dein Display wenig. Du musst den Zeichencode nehmen den das LCD Datenblatt vorgibt.
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.
