Hallo!
Ich möchte nur als Lektüre vorschlagen: http://www.roboternetz.de/community/...n-auf-16*2-LCD .![]()
Hallo!
Ich möchte nur als Lektüre vorschlagen: http://www.roboternetz.de/community/...n-auf-16*2-LCD .![]()
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
mit dem Befehl: lcd_putc('%'); zeigt er es leider immer noch nicht an mhmmmmm.
Mal ne ganz dumme Frage: Du hast das LCD schon (vorher) initialisiert?
Hast Du die (richtige) Position gewählt, wo das Zeichen hinkommen soll?
Bei mir (Sprache C, NICHT-Fleury-Lib) sieht es mit Sonderzeichen z.B. so aus:
Viel Erfolg nochCode:... #define LCD_CHAR_OMEGA 244 //Omega-Zeichen #define LCD_CHAR_U 228 //µ-Zeichen ... lcd_init(); // ... lcd_clear(); // Vor LCD-Ausgabe Display leeren Line1(); // An den Anfang der 1. Zeile springen // oder auf Position: SetCursor (2, 10) => SetCursor (x,y), x=zeile {1,2}, y=Pos {0, 15} ... lcd_string("LCD-Test ^"); // String ausgeben ... lcd_data(LCD_CHAR_OMEGA); //Omega - käme hier direkt nach dem Winkel raus...
Geändert von oberallgeier (12.04.2013 um 08:10 Uhr) Grund: Fehlenden Zeilenwechsel im Code korrigiert
Ciao sagt der JoeamBerg
danke oberallgeier für den Programmcode, hat geklappt konnte damit was darstellen, aber leider anstatt das Omega Zeichen ein OHM Zeichen, weiss leider nicht auf welcher Zahl das Prozent liegt...
Vielleicht kann mir damit ja noch jemand weiterhilfen.
Hallo,
in den Datenblättern der Displays ist meist der Zeichensatz aufgeführt.
Ich gehe jetzt mal von einem Standardcontroller HD44780 aus.
Also z.B. in http://www.lcd-module.de/pdf/doma/dip162-d.pdf auf Seite 2.
Das Prozentzeichen ist in der Tabelle in der linken Spalte.
Wenn man sich die Beschriftungen dazu anschaut ergibt sich Upper 4 bit: 0010 und Lower 4 bit: 0101, zusammengesetzt also 00100101. Die Binärzahl in Dezimal umgerechnet ist 37.
Also kannst du nun mit
das Prozentzeichen % anzeigenCode:#define LCD_CHAR_PROZENT 37 ... lcd_data(LCD_CHAR_PROZENT);
Falls auf dem Display etwas anderes anzeigt wird, hat dein Display wohl einen anderen Zeichensatz. Welches Display verwendest du denn?
Was stellst du dir unter einem "Balken" vor? Alle Pixel auf dunkel? Das wäre nach Tabelle 11111111 binär, also 255 dezimal.
Grüße,
Bernhard
<pingelig ein>das ist dasselbeaber leider anstatt das Omega Zeichen ein OHM Zeichen<pingelig aus>
Geändert von BMS (12.04.2013 um 09:23 Uhr)
Das ist ein geringes Problem. Es gibt etliche Möglichkeiten ans Prozentzeichen zu kommen. Beispiele wieder NICHT Fleury-Lib-proof (sprich: nicht getestet).... weiss leider nicht auf welcher Zahl das Prozent liegt ...
Die Einfachste:malt in die zweite Zeile auf die achte Position das Prozentzeichen. Achte Postion, weil die erste mit Null adressiert wird: SetCursor (2, 0);Code:SetCursor (2, 7); lcd_data('%');
Kaum komplizierter:macht das Gleiche, ist aber schlecht leserlich im Quellcode.Code:SetCursor (2, 7); lcd_data(37);
Und "hinterrücks durchs Ohr"Schon wieder dasselbe, nur umständlich.Code:#define LCD_CHAR_Przt 37 //%-Zeichen SetCursor (2, 7); lcd_data(LCD_CHAR_Przt);
Oder im String:Vielleicht schaust Du Dir mal diese Tabelle an (klick hier).Code:Line1(); // An den Anfang der 1. Zeile springen lcd_string("Rabatt 22 %"); // String ausgeben ab Anfang erste Zeile
Ciao sagt der JoeamBerg
Lesezeichen