Forum: Mikrocontroller und Digitale Elektronik LCD ATMega8 Turotail-4 Nur löschung des Displays :-/


von Pascal (Gast)


Lesenswert?

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

von Hubert.G (Gast)


Lesenswert?

Code?

von Hannes L. (hannes)


Lesenswert?

Dein Timing wird nicht stimmen...

;-)


...

von Pascal (Gast)


Lesenswert?

@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.

von Karl H. (kbuchegg)


Lesenswert?

> 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.

von Pascal (Gast)


Lesenswert?

Moin,
ich habe jetzt die zeiten überprüft. Mit dem AVR Calc und die stimmen
auf  4 MHz überein. Was nun ?

von Hannes L. (hannes)


Lesenswert?

- 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.

...

von Pascal (Gast)


Lesenswert?

Ê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

von Pascal (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.