Guten Abend, ich versuche momentan eine Schaltung mit Display zum Laufen zu bekommen, scheitere aber daran, dass mein Display nur weiße Balken in der oberen Zeile anzeigt und sonst nichts. Ich verwende einen ATmega8 Mikrocontroller, ein Display vom Typ 1602A. Alle Kontrasteinstellungen habe ich schon durchprobiert, daran kann es nicht liegen. Momentan verwende ich das angehängte Testprogramm um irgendein Ergebnis zu erzielen, allerdings bisher erfolglos. Hat irgendeiner einen Rat für mich? Die SuFu hat bisher nichts gebracht was ich nicht schon ausprobiert hätte... Vielen Dank!
Der "Witz" ist in dem Teil verborgen, den du nicht angehängt hast.
Die Lcd-Routines.asm also? Da verwende ich die Standardversion, ich hab sie trotzdem mal angehängt.
Albert schrieb: > Die Lcd-Routines.asm also? Da verwende ich die Standardversion, ich hab > sie trotzdem mal angehängt. Das ist bestimmt nicht der Standard. Ist aber sehr nett von dir, dass du sie trotzdem angehängt hast.
Ich vermisse in deinem Code die ganzen Definitionen, über dir die Hardware konfiguriert wird. Wo ist zb in deinem Code enthalten
1 | sbr temp1, 1<<PIN_RS ; entspricht 0b00010000 |
auf welchem Pin die RS Leitung liegt? Eigentlich sollte das überhaupt nicht assemblieren, weil der Assembler ja keine Ahnung davon hat, was 'PIN_RS' sein soll. Hast du denn da keine Fehlermeldungen gekriegt?
Vielleicht hast du auch Lust den Schaltplan und ein Bild vom Aufbau zu posten :)
Karl Heinz schrieb: > Ich vermisse in deinem Code die ganzen Definitionen, über dir die > Hardware konfiguriert wird. > > Wo ist zb in deinem Code enthalten >
1 | > sbr temp1, 1<<PIN_RS ; entspricht 0b00010000 |
2 | > |
> > auf welchem Pin die RS Leitung liegt? Eigentlich sollte das überhaupt > nicht assemblieren, weil der Assembler ja keine Ahnung davon hat, was > 'PIN_RS' sein soll. Hast du denn da keine Fehlermeldungen gekriegt? Und dein Mega läuft auch wirklich mit
1 | .ifndef XTAL |
2 | .equ XTAL = 4000000 |
3 | .endif |
4Mhz?
Mein Projekt findet im Rahmen eines Seminars an meiner Schule statt. Wir verwenden alle die gleichen Dateien (Die Lcd_routines.asm die von dieser Website hier stammen). Bei einigen funktioniert es ohne Probleme, ohne weitere Definitionen wie PIN_RS, bei anderen (wie mir) wiederum nicht. AVR Studio hat jedes Programm bisher ohne Fehlermeldungen geschluckt...
Albert schrieb: > Mein Projekt findet im Rahmen eines Seminars an meiner Schule statt. Das ist kein Grund, der dich vom Mitdenken entbindet. > Website hier stammen). Bei einigen funktioniert es ohne Probleme, ohne > weitere Definitionen wie PIN_RS, Sorry. Das kann nicht sein. Du erzählst Blödsinn. Eine nicht erfolgte Definition ist eine nicht erfolgte Definition. Die schmeisst dir der Assembler um die Ohren. Der kann sich ja die korrekten Werte nicht aus den Fingern saugen.
Albert schrieb: > Bei einigen funktioniert es ohne Probleme, Ich denke, bei einigen in deinem Seminar ist es so, dass die nicht einfach nur den erst besten Code aus dem Tutorial abkopieren, sondern dass die sich auch die begleitenden Texte dazu durchlesen und sich dann die Version aus dem Tutorial kopieren, die die endgültige ist.
Danke! Der mega läuft tatsächlich nur mit 1Mhz, habe das mal umgestellt. Bringt aber dennoch keine Besserung... Außerdem habe ich eben diese Definitionen nachgefügt: EQU LCD_PORT = PORTD .EQU LCD_DDR = DDRD .EQU PIN_RS = 4 .EQU PIN_E = 5 .EQU XTAL = 1000000 Tut mir Leid das ich das bisher nicht erwähnt habe, ist jetzt Teil des Programms. Funktioniert trotzdem nicht...
Hab das eben korrigiert, tut mir Leid für den Fehler.
Albert schrieb: > Danke! Der mega läuft tatsächlich nur mit 1Mhz, habe das mal umgestellt. > Bringt aber dennoch keine Besserung... > > Außerdem habe ich eben diese Definitionen nachgefügt: > > EQU LCD_PORT = PORTD > .EQU LCD_DDR = DDRD > .EQU PIN_RS = 4 > .EQU PIN_E = 5 > .EQU XTAL = 1000000 > Das wäre aber schon ein seltsamer Zufall, wenn dein LCD exakt genau so angeschlossen ist, wie im Tutorial. Kann natürlich sein, möglich ist alles. Also: Wie ist das LCD angeschlossen. An welchem Port und an welchen Pins?
Karl Heinz schrieb: > Albert schrieb: > >> > > Ich denke, bei einigen in deinem Seminar ist es so, dass die nicht > einfach nur den erst besten Code aus dem Tutorial abkopieren, sondern > dass die sich auch die begleitenden Texte dazu durchlesen und sich dann > die Version aus dem Tutorial kopieren, die die endgültige ist. Ich habe mich heute über eine Stunde mit einem meiner Mitschüler auseinandergesetzt, bei denen das Programm auf Anhieb funktionierte, auch er fand keinen Fehler. Schaltplan hab ich übrigens angefügt.
Es gibt im Grunde nur 3 mögliche Fehlerquellen * das LCD ist nicht wirklich HD44780 kompatibel * die Leitungen sind verkehrt an die Pins angeschlossen und stimmen nicht mit den Angaben im Programm überein * dein LCD ist knapp mit dem Timing. D.h. die Wartezeiten sind etwas zu kurz. Punkt 3 ist der häufigste Fall, aber auch die anderen beiden sind nicht ausser Acht zu lassen und kommen in der Praxis vor. Ist mir selbst auch schon passiert, dass ich ein LCD auf dem Steckbrett an die falschen Pins verkabelt habe und es nicht gleich gemerkt habe.
Albert schrieb: > Schaltplan hab ich übrigens angefügt. Das ist kein (vollständiger) Schaltplan. Es fehlen Verbindungen und jede Menge Bezeichnungen. Du solltest auch das vollständiges Programm posten. So wie es durch das AVR-Studio übersetzt wurde.
Albert schrieb: > Schaltplan hab ich übrigens angefügt. OK. Jetzt stellt sich noch die Frage, ob das in der Realität auch tatsächlich so gesteckt wurde und/oder ob es zb einen Wackelkontakt gibt.
Wo sind ein oder zwei Stützkondensatoren am Display und am ATMega?
Karl Heinz schrieb: > Es gibt im Grunde nur 3 mögliche Fehlerquellen > * das LCD ist nicht wirklich HD44780 kompatibel > * die Leitungen sind verkehrt an die Pins angeschlossen und stimmen > nicht > mit den Angaben im Programm überein > * dein LCD ist knapp mit dem Timing. D.h. die Wartezeiten sind etwas zu > kurz. > > Punkt 3 ist der häufigste Fall, aber auch die anderen beiden sind nicht > ausser Acht zu lassen und kommen in der Praxis vor. Ist mir selbst auch > schon passiert, dass ich ein LCD auf dem Steckbrett an die falschen Pins > verkabelt habe und es nicht gleich gemerkt habe. Okay, dann werde ich das jetzt noch einmal komplett überprüfen, danke für die Antwort!
Warum ist der zweite GND Pin am ATMega nicht verschaltet?
Georg G. schrieb: > Wo sind ein oder zwei Stützkondensatoren am Display und am ATMega? Wofür benötige ich die Stützkondensatoren? Sorry für die Anfänger-Fragen..
Warum ist der zweite GND Pin am ATMega nicht verschaltet? Auch AVCC sollte immer beschaltet sein.
Vieleicht ist ja der Kontrast volle Kanne aufgedreht. Hintergrundbeleuchtung ohne Vorwiderstand anschliessen führt meist zum defekt der LEDs.
Georg G. schrieb: > Warum ist der zweite GND Pin am ATMega nicht verschaltet? Der "rechts"? Soll also auch an GND angeschlossen werden?
Wenn der, bei dem es funktioniert, ein vernünftiger Kerl ist, dann bitte ihn mal, statt seines Displays das von Dir an sein Steckbrett zu stecken. Damit hast Du die Gewähr, daß das Display in Ordnung ist und mußt dann bei Dir weiter in Verdrahtung und Programm suchen, wo die Macke ist. MfG Paul
Ach, da ist vieles nicht verschaltet. Der zweite GND gehört angeschlossen. AVcc gehört angeschlossen An beiden Pärchen VCC/Gnd AVcc/Gnd gehören Stützkondensatoren. Ein Reset-Widerstand (ca. 10k) nach Vcc hat noch nie geschadet. Was auch immer recht gut kommt: eine simple LED an einem Pin, die man bei Programmstart einschaltet, dann eine kleine Wartezeit (vielleicht 1 Sekunde) und wieder ausschaltet, kann viel beitragen. Denn: die darf nach dem Brennen des Programms bzw. nach dem Spannungsanlegen nur einmal für die eingestellte Zeitdauer aufleuchten. Tut sie das mehrmals, dann ist das ein Hinweis darauf, dass der µC ungewollte Resets macht. Was wiederrum oft ein Hinweis auf ein Hardwareproblem, wie zb fehlende Stützkondensatoren, ist. Leuchtet sie hingegen überhaupt nicht, dann ist beim Brennen des Programms was schief gelaufen. So gesehen erlaubt so eine simple LED auf ganz einfache Art und Weise schon ein paar Aussagen über den 'Status' des Prozessors.
holger schrieb: > Hintergrundbeleuchtung ohne Vorwiderstand In der letzten Lieferung aus China hatte der Hersteller ganz heimlich Vorwiderstände eingebaut. Und die LEDs waren deutlich besser als früher, wesentlich heller bei weniger Strom. Es gibt also durchaus positive Überraschungen.
holger schrieb: > Vieleicht ist ja der Kontrast volle Kanne aufgedreht. > Hintergrundbeleuchtung ohne Vorwiderstand anschliessen > führt meist zum defekt der LEDs. Habe an Pinnummer 15 des LCDs einen Vorwiderstand von 10kOhm angeschlossen und regele die Hintergrundbeleuchtung über das Potentiometer.
Paul Baumann schrieb: > Wenn der, bei dem es funktioniert, ein vernünftiger Kerl ist, dann > bitte > ihn mal, statt seines Displays das von Dir an sein Steckbrett zu > stecken. > > Damit hast Du die Gewähr, daß das Display in Ordnung ist und mußt dann > bei Dir weiter in Verdrahtung und Programm suchen, wo die Macke ist. > > MfG Paul Habe da der Abgabetermin der Arbeit näherkommt ein neues Display (exakt gleicher Typ) gekauft und dieses angeschlossen, mit dem gleichen Effekt...
Albert schrieb: > Vorwiderstand von 10kOhm Ich bin ja ein gläubiger Mensch... aber das ist etwas zu viel gelogen. Über 10kOhm bekommst du nicht genug Strom für die Beleuchtung.
Albert schrieb: > Paul Baumann schrieb: >> Wenn der, bei dem es funktioniert, ein vernünftiger Kerl ist, dann >> bitte >> ihn mal, statt seines Displays das von Dir an sein Steckbrett zu >> stecken. >> >> Damit hast Du die Gewähr, daß das Display in Ordnung ist und mußt dann >> bei Dir weiter in Verdrahtung und Programm suchen, wo die Macke ist. >> >> MfG Paul > > Habe da der Abgabetermin der Arbeit näherkommt ein neues Display (exakt > gleicher Typ) gekauft und dieses angeschlossen, mit dem gleichen > Effekt... Das ist nicht dasselbe. Der UNterschied: Beim Kollegen funktioniert sein LCD nachweislich. Baust du dein LCD ein und es funktioniert ebenfalls, dann weißt(!) du, dass es irgendein Problem in deinem Aufbau geben muss. Du willst Tests machen, die dir Wissen verschaffen. Und sei es nur das Wissen, dass dein LCD in Ordnung ist. Du kannst auch mal deinen Prozessor bei ihm einsetzen (mit seiner Verkabelung und seinem LCD). Dann WEISST du, dass es nicht an deinem Programm liegt. Und umgekehrt: Du kannst seinen Prozessor, mit seinem Programm und seinem LCD in deiner Schaltung einsetzen. Wenn es dann in deinem Aufbau läuft, dann weisst du, dass dein Aufbau nicht so schlecht sein kann. Auf gut Deutsch: du benutzt seinen Komplettaufbau um 'Teilchen tauschen' Spielchen zu spielen und daraus die Schlüsse zu ziehen, was von deinem Aufbau wohl funktioniert und in welchem Bereich der Fehler liegen könnte bzw. was du als Ursache ausschliessen kannst.
:
Bearbeitet durch User
Georg G. schrieb: > Albert schrieb: >> Vorwiderstand von 10kOhm > > Ich bin ja ein gläubiger Mensch... aber das ist etwas zu viel gelogen. > Über 10kOhm bekommst du nicht genug Strom für die Beleuchtung. Ich kann ein Bild für dich machen wenn du möchtest?
Albert schrieb: > Georg G. schrieb: >> Albert schrieb: >>> Vorwiderstand von 10kOhm >> >> Ich bin ja ein gläubiger Mensch... aber das ist etwas zu viel gelogen. >> Über 10kOhm bekommst du nicht genug Strom für die Beleuchtung. > > Ich kann ein Bild für dich machen wenn du möchtest? Kannst du. Dann wird irgendwer die Ringe auf dem Widerstand lesen und feststellen, dass das keine 10k sind. Mit 10k leuchtet keine LED. Schon gar nicht die Hintergrundbeleuchtung. Aber: Bild ist sowieso eine gute Idee.
:
Bearbeitet durch User
Karl Heinz schrieb: > > Das ist nicht dasselbe. > > > Auf gut Deutsch: du benutzt seinen Komplettaufbau um 'Teilchen tauschen' > Spielchen zu spielen und daraus die Schlüsse zu ziehen, was von deinem > Aufbau wohl funktioniert und in welchem Bereich der Fehler liegen könnte > bzw. was du als Ursache ausschliessen kannst. Okay, das macht Sinn. Ich werd mich an die Schritte hier halten und Rückmeldung geben falls es nicht funktioniert hat, oder (hoffentlich) dann doch irgendwann funktioniert. Vielen Dank für die Hilfe und die schnellen Antworten!
Karl Heinz schrieb: > Albert schrieb: >> Georg G. schrieb: >>> Albert schrieb: >>>> Vorwiderstand von 10kOhm >>> >>> Ich bin ja ein gläubiger Mensch... aber das ist etwas zu viel gelogen. >>> Über 10kOhm bekommst du nicht genug Strom für die Beleuchtung. >> >> Ich kann ein Bild für dich machen wenn du möchtest? > > Kannst du. > Dann wird irgendwer die Ringe auf dem LCD lesen und feststellen, dass > das keine 10k sind. > > Mit 10k leuchtet keine LED. Schon gar nicht die Hintergrundbeleuchtung. > > Aber: Bild ist sowieso eine gute Idee. Der Widerstand hat den Farbcode: Lila Blau Orange Silber (oder Gold, Licht hier ist schlecht). Nach der universal Tabelle sollte das 10kOhm sein, kann aber sein das ich mich irre...
Ich glaube dir gern, dass du es so verschaltet hast. Aber aus der Hintergrund Beleuchtung kommt kein einziges Photon :-)
>Der Widerstand hat den Farbcode: Lila Blau Orange Silber (oder Gold, >Licht hier ist schlecht). Das sind 75k. >Nach der universal Tabelle sollte das 10kOhm sein, kann aber sein das >ich mich irre... 10k = Braun Schwarz Orange silber/gold
Albert schrieb: > Ich werd mich an die Schritte hier halten und > Rückmeldung geben falls es nicht funktioniert hat, oder (hoffentlich) > dann doch irgendwann funktioniert. Ja, mache das so, denn PANIK ist ein schlechter Ratgeber bei der Suche nach dem Fehler. Wenn man sich einmal eine bestimmte Reihenfolge bei der Fehlersuche angewöhnt hat, dann kann man die Macke am Besten festnageln. FF (Fiel Fergnügen) MfG Paul
Albert schrieb: > dass mein Display nur weiße Balken in der oberen > Zeile anzeigt und sonst nichts. also hast du schonmal alles richtig angeschlossen! vermute den fehler also in der software.
holger schrieb: >>Der Widerstand hat den Farbcode: Lila Blau Orange Silber (oder Gold, >>Licht hier ist schlecht). > > Das sind 75k. Nur für Farbenblinde oder CRI Geschädigte. Seit wann bedeutet Blau "5"? Das Blau muss höchstwahrscheinlich grün sein, weil es 76kΩ in den Widerstandsreihen bis einschließlich E24 nicht gibt. http://de.wikipedia.org/wiki/Widerstand_%28Bauelement%29#Farbkodierung_auf_Widerst.C3.A4nden http://de.wikipedia.org/wiki/E-Reihe
Wahrscheinlich ist sein Orange ein Braun. Wäre zumindest realistischer...
georg schrieb: > Albert schrieb: >> dass mein Display nur weiße Balken in der oberen >> Zeile anzeigt und sonst nichts. > > also hast du schonmal alles richtig angeschlossen! Sagen wir mal: Die Spannungsversorgung ist richtig angeschlossen. Das sind 2 von 10
>Sagen wir mal: >Die Spannungsversorgung ist richtig angeschlossen. Das sind 2 von 10 Sagen wir 2 1/2 von 10. Die Kontrastspannung ist auch vorhanden. Evtl. zu hoch, aber das ist ja egal;)
Beitrag #5068344 wurde von einem Moderator gelöscht.
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.