Grafik-LCD

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hallo!

Ich versuche gerade, ein Grafik-LCD anzusprechen.

128*64;
KS0108-Controller;
Datenblatt ->
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/187429-da-01-en-nlc-128x064csc_display.pdf

Nun funktioniert das alles ganz nett, allerdings nur dann wenn ich
darauf verzichte das Busy-Flag abzufragen. Tue ich das bleibt er in
der Abfrage-Schleife hängen. Ich hab mir das Status-Byte mal anzeigen
lassen, und BUSY ist dort dauerhaft auf "1". Merkwürdigerweise ist
aber auch das Bit DB6 dauerhaft auf "1", was laut Datenblatt jedoch
nie "1" werden kann.

Oder mache ich nur irgendeine Abfrage falsch?
Wär schön, wenn mal jemand in meinen Quellcode schauen könnte:
http://members.fortunecity.de/ricole/LCD.txt

Schonmal danke!
Rico

Re: Grafik-LCD
Hallo Rico,

Quoted text here. Click to load it




 >>Loop_Busy:    sbi    PORTD, E
 >>        rcall    Wait_100us
 >>        cbi    PORTD, E        ; Enable
 >>        rcall    Wait_100us
 >>        in    temp2, PINB        ; Status einlesen
 >>        andi    temp2, 0b10010000    ; weiter, wenn Reset=Busy=0

du liesst die Daten erst 100uS nachdem Enable schon wieder low ist vom
Controller. Der Displaycontroller gibt aber nur aus, wenn Enable high ist.
Versuch es doch mal so:

 >>Loop_Busy:    sbi    PORTD, E
 >>        rcall    Wait_100us
 >>        in    temp2, PINB        ; Status einlesen
 >>        cbi    PORTD, E        ; Enable
 >>        andi    temp2, 0b10010000    ; weiter, wenn Reset=Busy=0

Gruß,
Robin Adams
robin@adams-online.de


Re: Grafik-LCD
Quoted text here. Click to load it

Ja, so funktioniert's.
Ist ein Fehler im deutschen Teil des Datenblatts -> "Status lesen:
[...] Mit der fallenden Flanke des Enable-Pulses gibt der selektierte
Controller den Status auf den Datenleitungen aus."
Im englischen Teil ist es richtig beschrieben. Man soll halt doch
immer das Original lesen. ;-)

Danke!
Rico

Re: Grafik-LCD
Hallo Rico,

Quoted text here. Click to load it

im Idealfall sollte dein Mikrocontroller die Daten bei der fallenden
Enable-Flanke lesen, so wie der Displaycontroller die Daten beim Schreiben
bei der fallenden Enable-Flanke liesst. Da dies mit einem Mikrocontroller
nicht so einfach möglich muss man die Daten halt vorher lesen.

Von fehlerhaften Datenblättern kann ich auch ein Lied singen ;-(. Bei
der Übersetztung Taiwanesisch->Englisch->Deutsch scheint allzuoft der
Sinn auf der Strecke zu bleiben.

Gruß,
Robin Adams
robin@adams-online.de



Site Timeline