Hallo Community, ich benötige nochmal eure Hilfe. Ich habe ja mal wieder meine uC rausgeholt und etwas mit ihm rumgespielt. Dazu ein Programm geschrieben welches einen analogen Wert über den ADC einließt und per PWM-Signal (Tiefpass wird die Tage mal realisiert) die Kontrasteinstellung des LC-Display regelt über Pin 3. Soweit so gut, nach mehrmaligen Transport und entsprechendem Alter des ATMEGA ca. 4 Jahre hat er den Geist aufgegeben. Sprich am LC-Display (WD-C2704M-1HNN) werden fortlaufend zwei Buchstaben ausgegeben, welche meine Ausgabe überschreiben. Deswegen habe ich einen neuen ATMEGA 32-16 PU eingesetzt und mit dem gleichen Programm programmiert, ich hatte alle Funktionen allerdings ist jeweils die erste Zeile jedes Controller der LC-Anzeige komplett angesteuert. Zeile zwei lässt keine Ausgabe zu. Ich kann somit keine Ausgabe mehr am LC-Display vornehmen. Wenn ich den „alten defekten“ ATMEGA 32-16PU einsetzte bekomme ich eine Anzeige und kann auch Text editieren allerdings mit den fortlaufenden fehlerhaften Zeichen die das Display überschreiben. Wo könnte das Problem liegen? Link zum Datenblatt des LCD https://www.dropbox.com/s/6o9p4biytsuhzv0/Display%20WD-C2704M-1HNN.pdf Danke im vorraus.
Ja das LCD hängt am Port C. Von der Verdrahtung wurde nichts geändert, habe nur den defekten ATMEGA getauscht.
Habe das JTAG bereits aktiviert, leider ohne Erfolg. MCUCSR = (1<<JTD); Hier mal ein Bild wie es aussieht. https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-27%2022.19.16.jpg
Norman Bec schrieb: > Habe das JTAG bereits aktiviert, leider ohne Erfolg. > > MCUCSR = (1<<JTD); > > Hier mal ein Bild wie es aussieht. > https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-... Nachdem ich die Displays Initialisiere kommt die Anweisung: MCUCSR = (1<<JTD);
Norman Bec schrieb: > Habe das JTAG bereits aktiviert, leider ohne Erfolg. > > MCUCSR = (1<<JTD); > > Hier mal ein Bild wie es aussieht. > https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-27%2022.19.16.jpg Dann lies dir mal auf Seite 228 vom Datenblatt durch, welches Prozedere du einzuhalten hast, damit das JTAG tatsächlich deaktiviert wird. Die JTAGEN Fuse zurücknehmen ist einfacher :-)
Norman Bec schrieb: > Norman Bec schrieb: >> Habe das JTAG bereits aktiviert, leider ohne Erfolg. >> >> MCUCSR = (1<<JTD); >> >> Hier mal ein Bild wie es aussieht. >> https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-... > > Nachdem ich die Displays Initialisiere kommt die Anweisung: > MCUCSR = (1<<JTD); Und die Initialisieung macht keine Ausgabe auf PORTC?
Leider nein, hab die Woche wenig Zeit. Werde aber am Freitag mal den Quelltext posten und auch noch schreiben welche Entwicklungsumgebung ich benutze und noch ein wenig über die Ansteuerung des LCDs. Aber schon einmal danke für die jetzigen Antworten.
Bevor du dir die Muehe machst, was zu posten: Hast du jetzt mal JTAG per Fuse abgeschaltet? Sonst wird das nichts.
Laut Datenblatt müsste es damit gehen. MCUCSR = (1<<JTD); Allerdings ist keine Änderung eingetroffen.
HI >Laut Datenblatt müsste es damit gehen. >MCUCSR = (1<<JTD); Nein. Im Datenblatt Datenblatt steht es so: In order to avoid unintentional disabling or enabling of the JTAG interface, a timed sequence must be followed when changing this bit: The application software must write this bit to the desired value twice within four cycles to change its value. MfG Spess
>The application software must write this bit to the desired value >twice >within four cycles to change its value. Also zweimal den Befehl ausführen. Wenn er das aber nach wie vor NACH der LCD Initialisierung macht wird auch das nichts nützen;) JTAG Fuse abschalten und gut ists.
Danke für dem Tip, ich werde dann am Freitag nochmal drüber lesen und mich dann nochmal melden ob es nun geht oder nicht.
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.