Hallo! Ich bin an einem Projekt das ich schnellst möglich beenden muss und ich komm einfach nicht weiter! Ich benutze den PIC 18F2525 um eine Displayansteuerung im 4-Bit Modus zu machen! Meine Dateneingänge sind RB4 bis RB7 für D4 bis D7. Der Enable hängt am RB3, R/W an RB2 und RS an RB1. Mein Code ist im Anhang! Ich benutze das DIP162-DNLED Display Kann mir jemand dringend helfen??? Danke im Voraus
Checkliste hier Beitrag "Wettaufruf "Probleme mit LCD"" mal durchschauen. Ansonsten: Dein Code compiliert bei mir nicht, für welchen Compiler ist der?
Sieht aus wie eine Prüfungsaufgabe der FS-Elektrotechnik, Lörach. Da sind ja ausser der Initialsierung keine weiteren Routinen, die irgendwas aufs Display bringen sollen. Hast Du das überhaupt selbst geschrieben ??
Mit den Delays stimmt was nicht. Bei > Delay10KTCYx(10); //Verzoegerung 10mS > Delay10KTCYx(5); //Verzoegerung 50ms ist mindestens eines falsch oder falsch kommentiert. Bin auch grad nicht im Satz, ob das wirklich Millisekunden sind, oder vielleicht bloss Vielfaches von Prozessorzyklen, was ja nicht unbedingt auf's gleiche rausläuft.
Ja, ich bin auf der TS in Lörrach und mach das als Abschlussarbeit! Ich will lediglich die 2 Zeilen auf das Display bringen! Alles andere folgt dann noch! Mein Problem ist nur, das ich es bis Donnerstag haben muss und ich nun schon über ne Woche an der Init rumbastle und es einfach nicht will!!! Gruß
Immer wieder die gleichen Fehler: >#define display LATB //Ausgang fuer das Display >#define rs_display LATBbits.LATB1 //Display "register select" - PIN2 >Meine Dateneingänge sind RB4 bis RB7 für D4 bis D7. Der Enable hängt am >RB3, R/W an RB2 und RS an RB1. Und dann machst du sowas: display = 0x02; Schreibs doch einfach mal hin: LATB = 0x02; Was machst du damit ? LATB1 setzen ? RS ?
Also erzähl doch mal was passiert. Kannst Du den Konstrast verstellen, was sieht man dann ? Schaltplan wäre auch gut.
> > Was machst du damit ? LATB1 setzen ? RS ? Ja, das ist für die Initialisierung daß das Display auf 4-Bit Modus geschalten wird! Anbei hänge ich noch das Datenblatt mit der Beispielinit dran.
Analog wrote:
> was sieht man dann ? Schaltplan wäre auch gut.
Wenn ich einschalte leuchtet die Hintergrundbeleuchtung und die Obere
Zeile ist schwarz! Ja, die Kontrastverstellung funktioniert.
Schaltplan hänge ich an!
>Ja, das ist für die Initialisierung daß das Display auf 4-Bit Modus >geschalten wird! Und dafür reicht es RS zu setzen ? Hallo !! Jemand zu Hause ? Die 0x02 soll auf die Datenleitungen. Und das sind bei dir PB4 bis PB7. Du schreibst aber eine 0 auf diese Leitungen und setzt stattdessen RS.
Ich hab es jetzt umgeschrieben, jedoch hat sich an der situation nichts geändert! Ich weis bald echt nicht mehr woran es noch liegen könnte!!! Ich hänge den geänderten code nochmal an, vielleicht findet ja jemand noch etwas! Könnte es eventuell noch mit der Deklaration zusammenhängen? Statt LATB z.B.:PORTB????
Ein E-Puls von 1 Sekunde Dauer ist genauso falsch bei einer von 100ms Dauer. Ist aber nicht das Problem. Es gibt beliebig viele funktionierende Beispiele für LCD-Anstduerung hier, meist zwar für AVR, aber am Prinzip ändert das nichts. Lies doch mal was "holger" geschrieben hat. Wenn du schreibst > display = 0x02; dann setzt du vom Port die Pins 0,2-7 auf 0 und Pin 1 auf 1. Was meinst du bringt es, wenn du also immer nur Nullen (die an Bits 4-7) an den Display-Controller schreibst?
NB: Bei dem Kenntnisstand wär's besser du fängt mit einzelnen LEDs an Portpins an. Auch wenn der Zeitdruck noch so gross ist - in völligem Blindflug ohne Verständnis was du da machst ist selbst etwas relativ einfaches wie eine LCD-Ansteuerung schwierig.
//Zeilen ansprechen void switch_z1 (void) { LATB = 0x08; // Falsch ..... } void switch_z2 (void) { LATB = 0x0C; //Falsch .... } void show_text (char *ptr) { LATB = (*ptr/0x10) | 0x10; //Falsch .... LATB = (*ptr & 0x0f) | 0x10;//Falsch .... } Geh durch deinen kompletten Code und beseitige die falschen Befehle zum ansteuern der Datenleitungen.
>Ja, ich bin auf der TS in Lörrach und mach das als Abschlussarbeit!
Na, super. Abschluss als was? Pausenaufsicht?
lies doch mal das hier durch, dann verstehste, warum hier so viele mekern (sich über deinen kenntnisstand und dementsprechend realisierte lcd-initialisierung nerven) http://www.sprut.de/electronic/lcd/index.htm viel glück
Ich bin euch ja echt dankbar für alles! Jedoch bin ich der Meinung das kein Profi vom Himmel fällt und für was gibt es denn solche Foren, wenn man nicht nachfragen darf! Ich habe alles in Ordnung gebracht, jedoch tut sich immer noch nichts! Gruß
und jetzt sollen wir raten was du alles geändert hast? (stichwort: glaswürfel in reperatur..) wieso nimmste nicht einfach einen fertigen und funktionierenden code (geschrieben in C18, GCC oder weiss ich nicht was) und änderst die syntaxe so ab, dass dein compiler sie versteht?!
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.