Forum: Mikrocontroller und Digitale Elektronik unbeständige LCD-Ausgabe - Atmega8 - myavr light board - myavr lcd Add-on


von suez (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend zusammen!

Hoffe ihr könnt mich bei meinem Problem mit der Display-Ausgabe (myavr 
LCD Add-on) mit meinem myavr light board unterstützen:

Also ich verwende die beiden angehängten Dateien bereits in mehreren 
Projekten ohne Probleme, im aktuellen Fall muss ich jedoch den PortC 
anstatt PORTD für die Ansteuerung nutzen um parallel auch mit externen 
Interrupts arbeiten zu können...

Habe also im Header den Port und die einzelnen Pins angepasst und in der 
lcd_init() das Setzen der Pins als Ausgang konfiguriert (vorher d2-d7, 
jetzt c0-c5), Reihenfolge der Pins soll gleich bleiben.
Aus meinem Proggi starte ich einmalig die Initialisierung (lcd_init()) 
und schreibe dann (wer hätte es gedacht ;-) ) mit lcd_write_zeile() die 
Daten raus...

Problem ist jetzt, dass mir nach einem Reset des Controllers nur Mist in 
einer Art Laufschrift ausgegeben wird und das auch nur in der ersten 
Zeile, obwohl auch die zweite 'befüllt' wird. Meistens funktioniert die 
Ausgabe wenn ich in diesem Zustand das Display ab- und wieder anstecke 
ganz normal mit Ausgaben in beiden Zeilen (5V und Ground bleiben 
verbunden) . Wenn ich dann wieder einen Reset mache geht das Spiel 
wieder von vorne los.

Mein erster Gedanke war natürlich ein Wackler oder eine kalte Lötstelle 
an der Steckleiste und habe deshalb noch nen anderen Stecker angelötet, 
jedoch gleiches Verhalten. Auch sollte es ja dann eigentlich auch bei 
der Ausgabe nach dem Ab- und Anstecken Probleme geben, das ist aber ja 
nicht der Fall...

Habe auch mal alle Pins von PORTC auf Ausgang und '1' gesetzt und alle 
geben mir ca. 5V aus. Es sieht auf den ersten Blick also so aus, dass 
die Pins funktionieren....

Habt ihr eine Idee was hier los sein könnte? Habe schon lange nach 
ähnlichen Problemen im Netz gesucht und rumprobiert, leider ohne 
Erfolg... Eine aktive Sonderfunktion auf den Pins kann es auch nicht 
sein, erstens weil ich nichts aktiviert habe und meines Wissens beim 
Atmega8 nichts automatisch auf diesen Pins läuft, auch spricht die 
anständige Ausgabe nach dem Neustecken dagegen...

Vielen Dank für eure Rückmeldung!

von suez (Gast)


Lesenswert?

Wirklich keiner eine Idee was hier faul sein könnte?

Habe das Gleiche auf PortB probiert, leider mit gleichem Ergenis. Es 
funktioniert also nur auf PortD so richtig (Standard-Konfiguration von 
AVR)......

Hat keiner einen Hinweis wie ich das Ganze weiter analysieren könnte? 
Ein Oszilloskop zur Messung der Signale steht mir leider nicht zur 
Verfügung...das wäre der einzige Ansatz den ich noch hätte.... komisch 
ist halt wirklich dass es nach (mehrmaligem) Neustecken auch an den 
anderen Ports funktioniert.... ich werd verrückt! Es muss doch 
irgendeinen Störeinfluss geben, nur welchen?

von spess53 (Gast)


Lesenswert?

HI

>  sbi(LCDPORT, LCD_PIN_D5);    /* 4-bit Modus konfigurieren
>  cbi(LCDPORT, LCD_PIN_D4);
>  sbi(PORTD, LCD_PIN_E);    /* 4-Bit Modus starten ... */
>  cbi(PORTD, LCD_PIN_E);

Warum benutzt du überall LCDPort und hier plötzlich PORTD?

MfG Spess

von suez (Gast)


Lesenswert?

Wahnsinn, das war es! Auch auf die Port-Konstante geändert und schon 
lief alles wunderbar. Da sieht man vor lauter Bäumen keinen Wald mehr!

Ich danke jedem, der sich mit meinem Problem beschäftigt hat. Super 
Spess!

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
Noch kein Account? Hier anmelden.