Hallo! Ich hab das o.g. Display von Pollin und bekomme einfach die zweite Zeile nicht zum laufen. Der Controller ist HD44780 kompatibel. Ein anderes Display mit diesem Controller läuft mit der Software problemlos. Kann es ein Defekt des Displaycontrollers sein? Oder ist es möglich, dass bei diesem Display ein völlig seltsamer Adressbereich (habe es mit 0x20-0x2F 0x40-0x4F 0x60-0x6F und 0x80-0x8F probiert) verwendet wird? Wäre schön, wenn jemand das Teil schon am Laufen hat und mir Infos geben könnte. Für Eure Mühen schonmal danke! MfG Peter
Nein, nix ungewöhnliches, die Dinger laufen einwandfrei, Zeile 2 ab Adresse 0x40, so wie sie sollen. Habe 6 davon im Einsatz, keine Probleme. Entweder Deine Init ist grenzwertig oder Du hast wirklich ein kaputtes erwischt. Hast Du noch ein anderes davon zum probieren?
Hallo! ich habe leider nur dieses eine Exemplar. Was hast Du für Timings in der Init? Hier mal meine init-Funktion.
1 | void init_controller(unsigned char befehl) |
2 | {
|
3 | /*Erstes Schreiben mit 8 Bit*/
|
4 | LCD_PORT=(LCD_PORT & (~(0x0F << LCD_OFFSET))) | (0x03 << LCD_OFFSET); |
5 | lcd_e_wechsel_f(); //erstes Schreiben der Init-Werte (fallende Flanke) |
6 | _delay_ms(5); //5ms warten |
7 | lcd_e_wechsel_f(); //zweites Schreiben der Init-Werte (fallende Flanke) |
8 | _delay_us(1); //1us warten |
9 | lcd_e_wechsel_f(); //drittes Schreiben der Init-Werte (fallende Flanke) |
10 | _delay_us(1); //1us warten |
11 | |
12 | /*Port fuer 4-Bit Modus konfigurieren*/
|
13 | LCD_PORT=(LCD_PORT & (~(0x0F << LCD_OFFSET))) | (0x02 << LCD_OFFSET); |
14 | lcd_e_wechsel_f(); //Fallende Flanke generieren |
15 | _delay_us(1); //1us warten |
16 | |
17 | /*LCD-Settings einstellen*/
|
18 | lcd_befehl(LCD_4BIT2); //LCD auf 4 Bit-Betrieb umstellen |
19 | lcd_befehl(LCD_ANZ_AUS); //Anzeige aus |
20 | lcd_befehl(LCD_LOESCH); //Anzeige loeschen |
21 | lcd_befehl(LCD_CRSR_RECHTS); //Cursor-Modus setzen |
22 | lcd_befehl(befehl); //Befehl aus Funktionsaufruf übergeben |
23 | }
|
MfG Peter
Vor dem ersten Schreiben auf das Display muß nach dem Einschalten erstmal 200ms gewartet werden. Zwischen einzelnen Befehlen muß mindestens 40µs (!), bei manchen sogar (Cursor Home) bis zu 400µs. Im Datenblatt des HD44780 ganz hinten sind die beiden möglichen Inits mit Wartezeiten ausführlich beschrieben.
ich hatte mal eine Anzeige, die zeigt 2 Zeilen nur im 8 Bit Modus an; bei 4 Bit Modus habe ich nur eine Zeile zur Anzeige gebracht, Ursache konnte ich nicht klären
@ Travel Rec.: Die Timings habe ich jetzt entsprechend den Vorgaben abgeändert (die alten waren aus einem Datenblatt eines anderen Displays mit diesem Controller). Leider hat das am Ergebnis nichts geändert ich kann nichts auf die zweite Zeile schreiben. Langsam geh ich wirklich von einem Defekt aus. Wäre es zu unverschämt nach Deiner Init zu fragen? Schonmal Danke für Deine Mühen! MfG Peter
>Wäre es zu unverschämt nach Deiner Init zu fragen?
Nö, gar nicht, aber ich progge in ASM ;-)
Hm, okay da kannste mir auch nen Abdruck von nem Autoreifen schicken. ;-) Naja, ich besorg mir einfach mal ein zweites Display. Wenn das auch nicht geht, liegt der Fehler wohl irgendwo zwischen den Augen. Jedenfalls Vielen Dank für Deine Hilfe! MfG Peter
Poste doch mal Deinen derzeitigen C-Code, aber bitte mit Ausgaberoutine. Ein bisserl kann ich mir zusammenreimen, viele andere Forumleser können ebenfalls mitreden. Zu 99,8% liegt es aber bestimmt nicht am LCD.
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.