Hi Leute, ich habe da son Problem. Habe an mein STK 500 an PORTD Mein Display angeschloßen. Und habe auch Meine Schaltung des Display mehrfach überprüft Sie ist also auch korrekt. Proramm und Init des LCD habe ich Orginal aus dem Tutorial genommen. Nun ist das Problem. Das Sobald ich alles Starte im Displays zwar die Balken Verschinden ( also das Display Gelöscht wird ) aber leider erscheint der aus dem Tuorial geschriebene Text "Test" nicht aufs Display. Was glaubt ihr was das sein kann ? Hilft mir bitte. Danke MFg Pascal
@Hubert G. Also der Code ist wie gesagt identisch mit dem aus dem Turotial. Die Iitialiesierungsdatei füge ich ein http://www.mikrocontroller.net/sourcecode/tutorial/lcd-routines.asm Und folgendes Program http://www.mikrocontroller.net/sourcecode/tutorial/lcd-test.asm @Hanne S. Lux Was meinst du genau mit Timing. Und was kann ich dagegen machen. Ich benutze auf jedenfall 4MHz.
> Was meinst du genau mit Timing.
Na ja.
Beim Initialisieren des Displays und auch später gilt es
Wartezeiten einzuhalten. Aus dem Tutorial geht leider nicht
eindeutig hervor für welche Taktfrequenz der Code geschrieben
wurde und nachgerechnet hab ichs auch nicht.
Aber du solltest das nachrechnen!
Rechne doch mal nach, ob die Warteschleifen mit den im
Tutorial genannten Konstanten tatsächlich die angegebenen
Wartezeiten bei 4 Mhz ergeben.
delay50us: ;50us Pause
ldi temp1, $42
delay50us_:dec temp1
brne delay50us_
ret ;wieder zurück
;Längere Pause für manche Befehle
delay5ms: ;5ms Pause
ldi temp1, $21
WGLOOP0: ldi temp2, $C9
WGLOOP1: dec temp2
brne WGLOOP1
dec temp1
brne WGLOOP0
ret ;wieder zurück
Die sind kritisch. Vor allem in der Initialisierungsphase kommen
ein paar Kommandos an das LCD zum Zuge die je nach konkretem LCD
Kontroller längere Zeiten brauchen. Wenn du beim Text-Schreiben
mal ein Kommando verlierst, weil das LCD noch nicht aufnahmebereit
ist, dann siehst du das, weil Text fehlt. Wenn dir aber in der
Initialisierungsphase ein Kommando an das LCD fehlt, dann siehst
du nur: Das LCD initialisiert nicht so wie das willst.
Moin, ich habe jetzt die zeiten überprüft. Mit dem AVR Calc und die stimmen auf 4 MHz überein. Was nun ?
- Was für ein Display benutzt Du? - Hat es einen Controller HD44780 oder einen sogenannten HD44780- Kompatiblen? - Stimmen die Zeiten mit den Angaben im Datenblatt des Displays überein? - Hältst Du auch die Wartezeit zwischen Anlegen der Versorgungsspannung und Ansprechen des LCDs ein? - Hast du mal hier im Forum gesucht? Denn das Thema (mit kompetenten Antworten!) gibt es hier immer wieder. Deine Frage ist mit Sicherheit bereits beantwortet worden. ...
Ês ist ein Display 2x16 mit dem Controller HD44780 DAtenblatt vom Haargenau diesem Display habe ich nicht. Bzw. weis ich igarnicht was für ein Display das ist. Ich weis nur das es Funktioniert. Die Wartepausen war keine rede von im Tutorial. Habe ich jetzt aber gemacht gehabt. Leider hat dies kein effect gehabt auser das der Schwazre Balken später erst ausging. Ich habe im Forum gesucht da waren viele Fragen und Gute antworten aber keiner hate das Problem wie ich. Sonst würde ich kein neuen Theard aufmachen. Ist doch logisch. MFg Pascal
Hi, ich bins nochmal. Ich habe den Fehler gemerkt. So wie es aussieht habe ich mir das Display wohl doch zerschossen. Habe ein anderes ausprobiert und es Funktioniert einwandfrei. Sorry für die umstände und die Hilfe. Ich weis nur nicht wie ich mir das LCd kaputt gemacht habe. evt. da ich die 2.5mm Löcher auf 3mm erweitert habe. MFg Pascal
Das 4x27-LCD von Pollin hat zwei dieser Controller. Hier findest Du eine (recht alte) Routinensammlung, die bei mir funktioniert hat. Dort findest Du auch eine Diskussion mit vielen wertvollen Hinweisen. http://www.mikrocontroller.net/forum/read-1-164017.html#164026 Eine funktionierende Routinensammlung für ein 4x20-LCD ist im Anhang. Sie sollte auch mit einem 2x16-LCD zurechtkommen. Mit 2x16 habe ich noch nichts gemacht. Vielleicht kannst Du ja durch Analyse der Routinen feststellen, was Du anders machst. ...
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.