Moin. Habe hier folgendes Problem: Versuche ein LCD Dispay (2xHD44780) an einem P16F84A zu betreiben, aber anscheinend fehlt mir noch die nötige Erfahrung oder einfach das Wissen dazu. Habe bereits ein Programm geschrieben und das LCD an den PIC angeschlossen. Nu passiert aber nicht viel nachdem ich den Saft einschalte. Normalerweise sollte es initialisiert werden und anschliessend sollte ein "A" erscheinen. Hier ist das Programm: http://home.arcor.de/stowoda/source.asm Bin dankbar für Euere Hilfe! Gruß
Die Wartezeiten nach den einzelnen Initialisierungs-Kommandos stehen nicht aus Jux in der Doku, die sind nötig.
Schau dir auch mal die Kontrastspannung des LCDs an. Hatte mal ein Studiumskollege, der 2 Tage nach nem Fehler in der Initialisierung gesucht hatte, wobei diese richtig war -> nur der Kontrast war falsch eingestellt und somit keine Ausgabe erkennbar.
mit dem Kontrast ist alles io. Habe das LCD bereits am Parallelport getestet. danke! Werde mal die Zeiten genauer timen, mal sehen. Bin relativ neu auf diesem Gebiet, deswegen liegt es bestimmt nciht nur an einem Fehler. Najna, mal sehn. thx so far Gruß Lukas
Son Mist.. Habe den Fehler nun gefunden. Am liebsten würde ich ihn gar nicht zugeben wollen. RA2 sowie RB3 an meiner Testplatine waren nicht mit dem PIC verbunden.. Gruß Lukas
Moin Habe nun alle Kabel geprüft und jede Verbindung getestet. Hardwaremässig ist alles 100% io. Leider konnte ich immer noch keinen Erfolg verbuchen was die Erfolgreiche Initialisierung des LCDs angeht. Hab nun ein neues Programm geschrieben und es auch auf die Zeiten getestet. Die mindestzeiten von 15ms, 4.1ms sowie 100µs werden, dort wo es relevant ist, eingehalten. Habe mich sogar dazu entschlossen das BusyFlag prüfen zu lassen, bevor das LCD angesprochen wird. Im Code sieht alles ganz ok aus. Jedoch will es nicht so funktionieren wie ich es mir gedacht habe. Hoffentlich kann mir jemand von Euch auf die Sprünge helfen... Ahso.. Als ich den Saft das erste mal eingeschaltet habe, nachdem ich das neue Programm in den PIC gebrannt habe, funktionierte es sofort. Die Initialisierung schien erfolgreich verlaufen zu sein und der Cursor blinkte in der linken, oberen LCD Ecke. Seit dem klappt es nicht mehr. .. Wieso? Womit kann es zusammenhängen.. Mussi ich das LCD etwa resetten oder ähnliches? Bin leider am ende mit meinem Latein und deswegen auf Eure Hilfe angewisen. Wenn also jemand Zeit und Lust hat, kann er sich ja mal den Code angucken und eventuell sein Feedback abgeben. Wäre sehr dankbar. hier ist der Link zum code: http://home.arcor.de/stowoda/LCD/source_08.asm und hier der Leitfaden zur Ansteuerung des LCD: http://home.arcor.de/stowoda/LCD/Text-LCDs.pdf Gruß Lukas
Ok. Hab den Fehler! Aber wie stelle ich nun Zeichen dar, nachdem die Initialisierung erfolgreich war? zB. für eine "0" einfach 0x30h auf port B ?
Wenn ich nun ein Zeichen darstellen will, funzt es nicht. Bekomme immer nur einen Punkt in der rechten unteren ecke des 5x8 Kästchens. Dabei sollte doch 00110000 einer Null entsprechen.. Hmm. Weiss jemand Rat?
Für PIC habe ich kein Beispiel. Nur für AVR (Mega8). Es ist Baustelle und war nur zum "Spielen" gedacht. Der Zugriff auf das 4x27-LCD von Pollin klappt aber gut. Vielleicht bringt dich die Analyse des Programms (der Algorihmen) ja auf neue Ideen. Was war denn nun dein Fehler?? ...
Ich habe so einige Fehler begangen.. Also zuerst war meine Testplatine nicht 100% io. Später stellte sich raus, dass meine Verzögerungsschleifen nicht gut genug getimed waren. (nun hoffe ich, dass sie es sind) Als letztes habe ich eine Endlosschleife, die den PIC nachdem er das LCD angesteuert hat, beschäftigen sollte. diese Zwei Zeilen habe ich aus Versehen an die falsche Stelle gepackt und das Prog blieb hängen lange befor es fertig war mit der Initialisierung des LCD. noend goto noend nun, habe ich alles soweit überarbeitet, bekomm aber nur komische Punkte dargestellt. Offensichtlich ist da noch was faul. Hoffe, dass ich da bald hinterkomme, oder vielleicht jemand aus dem Forum einen Lösungsvorschlag unterbreitet. Gruß Lukas ps: danke Dir für Deinen code..
Nun.. Es klappt alles soweit. Habe wohl die relevanten Bugs entfernen können. Wenns jemanden interessiert hier der Code: http://home.arcor.de/stowoda/LCD/08/source.asm Gruß Lukas
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.