Hallo, wer kann mir bitte helfen. Ich versteh nicht warum ich keine vernüpftige Anzeige hinbekomme. Hatte vorher ein 2x16 Display, AT90s8515, Programmiere in C und die Welt war in Ordnung. Aber jetzt möchte ich gern ein 4x20 Display benutzen, aber wie!!! Im Anzeigefeld sind nur komische Zeichen!!! Hat einer eine C-Datei die mir weiterhelfen kann!!! Besten Dank im vorraus Nadine
wenn beide Displays zumindest einen mehr oder weniger kompatiblen Controller drauf haben, sollte es ersteinmal funktionieren, die Zeilenadressierung kann anders sein. Wird wohl irgendwas mit dem Timing nicht stimmen, gerade bei den Wartezeiten während der Initialisierung gibt es relativ große Unterschiede.
Was bedeutet das jetzt für mein Display? Wie sieht denn die Treiber-Routine aus, genauso wie beim 2x16? Ich finde bei Google nur Sachen in asm. #asm .equ __lcd_port=0x15 ;PORTC #endasm // include the LCD driver routines #include <lcd.h> #include <90s8515.h> void main(void) { // initialize the LCD for // 2 lines & 16 columns lcd_init(16); // go on the second LCD line lcd_gotoxy(0,0); // display the message lcd_putsf("Nadine\nSander\nbraucht\nHILFE"); // stop here while (1); }
Hallo, erstmal solltest Du genau wissen welcher LCD Controller auf deinem Display verwendet wurde. Bei einem 4x20 ist auf jeden Fall die Initialisierung anders als bei einem 2x16, dazu ist das Datenblatt des Chips nötig. Gruß Main666
Hallo Main666, Ich habe das Display von der Firma Reichelt erworben TYP LCD 204B LED ; Hersteller Displaytech ; Ich habe mal das Datenblatt angehängt, aber verstehen tue ich davon nix muss halt noch viel lernen. Ich Dank Dir jetzt schon. Gruß Nadine
Hallo Nadine, ich habe so ein Display bereits angesteuert und kann dir den Source-Code mailen, leider aber erst am Montag, da ich die Codes auf der Arbeit habe. Falls Dir das zu spät ist, schau mal auf der Seite 6 vom Datasheet nach. Da ist beschrieb, wann du welches Zeichen bei der Initialisierung senden muß. Reini
Schau doch erst mal in der Doku des Compilers nach mit welchen Parametern die Funktion lcd_init() aufgerufen werden muss.
Hallo, Seite 6 ist genau das was Du brauchst. Die letzte function set Zeile müsste sich zu der 2x16 Initialisierung unterscheiden, eventuell auch schon vorherige Befehle. Bitte unbedingt auf die angegebenen Wartezeiten achten oder das BusyFlag abfragen was aber am Anfang der Init auch nicht geht. Auf Seite 5 sind alle Kommandos zusammengefasst, da findest Du die genaue Erklärung der Initialisierung. Viel Erfolg ! Gruß Main666
Hallo alle zusammen, erst mal vielen Dank für Eure mühe, ich werd es mal probieren. Reini wenn Du mir den Source-Code mailen würdest fände ich das SUPER Danke Schönes Wochenende Gruß Nadine
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.