Grafik-LCD

R

Rico Loewe

Guest
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
 
Hallo Rico,

Rico Loewe wrote:
Ich versuche gerade, ein Grafik-LCD anzusprechen.

KS0108-Controller;

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.

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

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
 
Robin Adams <robin@adams-online.de> wrote in message news:<3f9141e5_2@news.arcor-ip.de>...
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
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
 
Hallo Rico,

Rico Loewe wrote:
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. ;-)
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
 

Welcome to EDABoard.com

Sponsor

Back
Top