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!
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.