LCD mit NT3881D

Gast #908846
Lesenswert?

Guten Morgen!

Ich hab hier im mement noch ein kleines Problem mit einem LCD. Da hoffe 
ich, daß sich da jemand auskennt und mir evtl. gedanklich auf die 
Sprünge helfen kann...:

Aaaalso, was ich habe:
ich benutze einen ATMega32. An seinem PortC hängt ein LCD, was im 
4-bit-Mode angesteuert werden soll. Die technichen Details sind in den 
Datenblättern im Anhang zu finden.
Das LCD ist von Optrex und vom Typ C-51847 NFQJ-LG-ACN. Laut dem DB ist 
da ein Controller vom Typ NT3881 drauf.
Ich programmiere in C, zur Ansteuerung habe ich den Quellcode aus dem 
Tutorial dieser Seite benutzt, wobei ich den Code so angepasst habe, daß 
es bei mir passt. Weil bei mir hängt der Datenbus vom LCD namlich an 
PinC[4-7] und nich an PinX[0-3] wie im Tutorial...
So, was kann ich noch sagen? Ich habe das JTAG-Interface deaktiviert, so 
daß der PortC komplett als Ausgang benutzt werden kann.

Mittlerweile bin ich soweit, daß das LCD sogar was anzeigt. Aber es ist 
nur Unfug! Es werden, ohne ein bestimmtes Muster feststellen zu können, 
nur die Zeichen "o", "O", "°", "/", "?", und "<-" dargestellt. Ein Blick 
ins DB hat mir gezeigt, daß diese Zeichen alle im LCD bei Adresse xF 
liegen. Das brachte mich aber bei meiner Erkenntnis auch nicht weiter...
Leider kann ich niergends eine Routine finden, wie man den NT3881 
richtig initialisiert. Auch keine Timing-Diagramme... Es wäre echt 
super, wenn ihr euch das mal näher angucken könntet... Ein bißchen habe 
ich noch den Verdacht, daß bei der Initialisierung was falsch läuft. Wo 
bei ich echt keine Fehler in meinem Code finden kann...

Danke schonmal,
Soman
Angehängte Dateien:
Gast #908921
Lesenswert?

Hey, danke, daß du dir die Mühe gemacht hast! Die verdrahtung hab ich 
gerade Kontrolliert, die ist i.O. . Die Pausen zu kurz? Wo denn?! ich 
hab doch sogar mehr und längere Pausen eingebaut als im Tutorial :) ... 
* nochmal ans Busy-flag denk... *
Sicher, daß wirklich alles mit der Maskiererei und so stimmt? Da bin ich 
nämlich noch nicht so sicher, weil ich nicht sooo viel Ahnung von C 
habe.

vg!
Gast #908931
Lesenswert?

nee, ich frag das busy nicht ab. aber ich denk da eben langsam drüber 
nach, wenn das mit den zeiten so schwierig ist :)
habe die zeiten auch vorher schon mal z.t. ganz krass verändert. hab es 
mal auf 70µs hoch gestellt. aber das brachte alles nichts. und statt 1 
µs mal 10 µs warten und so... an den zeiten hab ich schon rumgefummelt 
wie sonstwas... ist ja nicht so, daß ich nicht selbst schon viel 
probiert hätte ;)
Gast #912322
Lesenswert?

Morgen :) !

Also die Ausgabe habe ich jetzt hinbekommen. Ist mir peinlich, darum sag 
ich nicht, worans lag ;)
Jetzt hab ich den ADC in Gang gebracht und wollte eigentlich "nur" von 
zwei Kanälen Messwerte einlesen und den einen dann in der einen Zeile 
und den anderen in der anderen Zeile ausgeben.
Aber das klappt nicht so richtig. Und an der der Stelle wäre es schön, 
wenn einer von euch sich einmal angucken könnte, woran das liegt. Denn 
im Moment ist es so, daß auf dem LCD die Messwerte zeilenmäßig 
vertauscht stehen und an der Stelle für den ersten Messwert (der in der 
2. Zeile steht) springt die Anzeige ganz schnell zwischen Messwert 1 und 
2 hin und her. Sieht für mich so aus, als würde was mit der 
Variablenübergabe nicht klappen. Aber ich finds einfach nicht... :( im 
Anhang wie immer der Code (von "meinem" Programm und von der 
lcd-routines.c

Danke schonmal,
VG!
Angehängte Dateien:
Gast #913754
Lesenswert?

ja, also aus dem datenblatt geht leider nicht so viel hervor, aber ich 
habe natürlich am anfang, beovor ich mit messwerten gearbeitet habe und 
so, testanzeigen gemacht. das hat mit den routinen aus der 
lcd-routines.c super geklappt. also da konnte ich explizit sagen wenn 
ich das-un-das eingebe erscheint der text auch da-und-da.
weil der normale text steht ja auch da, wo er soll.

beispiel: die anzeige SOLL anzeigen:
"Messwert 1 = xxxxx"
"Messwert 2 = yyyyy"
"Messwert 3 = zzzzz"

es wir aber angezeigt:
"Messwert 1 = zzzzz"
"Messwert 2 = xxxxx"
"Messwert 3 = yyyyy"

und das ist doof. und ich habe schon einen kumpel darauf angesetzt, der 
sich eigentlich sehr gut damit auskennt, aber der kam auch nicht 
dahinter. und cih will das nicht irgendwie zurecht schummeln. das soll 
einfach richtig sein... :(

gruß!
Soman

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren