www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD schreibt nix


Autor: Rene Schir (gigastulle)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen

Ich habe folgendes Problem ich habe ein LCD (HD44780) 1x16 Ans STK500 
Gehangen Und wollte mir mal ein "Hallo" aufs Display Zaubern Doch leider 
schreibt er einfach nix :( Ich sehe Zwar das das display initialisiert 
wird, da die schwarzen Balken verschwinden aber er schreibt einfach 
nichts :( Ich bin echt am verzweifeln, Die Hardware schließe ich mal 
aus, das ich es mit einem Anderen Display versucht habe, mit dem selben 
ergebnis...ich denke ehr das die Software ne macke hat deshalb hab ich 
sie hier ma gepostet Den Kontrast habe ich auch schon eigestellt mit 
poti da kann ich drehen wie ich will,man sieht zwar das man am kontrast 
dreht aber mehr och nich kein "HALLO" zu sehen.

Ich würde mich freuen, wenn mal jemand über den Code fliegt und mir 
evtl. mal was sagen könnte, ich weis echt nich mehr weiter :( Ich 
verwende einen Atmega16 mit 1Mhz internal ozzilator !!!

Vielen dank schon ma im vorraus

Autor: Rene Schir (gigastulle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun mal Das Programm umgeschrieben, so das er mir den 
blinkenden Cursor anzeigen soll...was soll ich sagen es ist nix zu sehen 
:( Man Sieht wie das display initialisiert und der schwarze balken 
verschwindet aber mehr och nich es ist zum heulen ich weis echt nich 
mehr was ich machen soll

                        *** H  I  L  F  E ***

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rene,

Dein Programm kann nicht funktionieren:

1. der Stack Pointer liegt ausserhalb des RAM (1k) - mach es mal so:

ldi   temp, LOW(RAMEND)  ; STACK initialisieren
out   SPL, temp    ; Low
ldi   temp, HIGH(RAMEND)  ;
out   SPH, temp   ; High

2. Die fehlt eine Vektortabelle für den Timer-Interrupt.

Gruss Otto

Autor: Rene Schir (gigastulle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich hab es so gemacht wie du geschrieben hast leider ohne erfolg :(

Die Vektortabelle benötige ich doch nur wenn ich auch einen interrupt 
verwende und das tue ich ja nicht den ich frage das TIFR blos ab um zu 
wissen wannd er timer übergelaufen ist

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rene,

ja, mit der Vektortabelle hast Du recht - ich hatte übersehen, dass Du 
kein "sei" im Code hast - allerdings wenn ich mir den Namen Deines 
Programmes ansehe, wirdt Du die Vektortabelle sowieso brauchen.....

Die Abfrage des "Busy-Flag" funktioniert erst ab einem bestimmten Punkt 
der Initialisierung - hast Du dies aus einem funktionierenden Programm ?

Versuche es mal so, wie im Tutorium.

Gruss Otto

Autor: Rene Schir (gigastulle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich hatte vor 2 jahren ein Ähnliches programm mit dem selben display 
am laufen erst nach dem das Display initialieseirt ist, kann man das 
Bussyflag abfragen und ja du hast recht ich werde sie später brauchen :D 
Allerdings scheitert did ja jetzt schon an solch einer simplen "scheiße" 
vor allem weil das ja nicht das erstme is das ich damit 
rumexperimentiere ich wette, das es mal wieder was ganz simples is was 
mir dir nächte versaut :(

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rene,

Du solltest auf funktionierenden Code aufbauen, sonst verrinnt die Zeit 
und Du kommst nicht weiter - wenn das LCD läuft, kannst Du auch besser 
debuggen - nimm das Beispiel aus dem Tuturium.....

Gruss Otto

Autor: Rene Schir (gigastulle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch auf meinem Ganz ganz alten laptop nen Code gefunden der 
damals mit diesem Display funktioniert hat ich probiere es erstma damit

Ich danke dir trotzdem für deine Bemühungen fals ich den fehler noch in 
diesem leben finde werden ich ma posten was der fehler war

Autor: Rene Schir (gigastulle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich habe den alten code probiert und siehe da es 
funtioniert...allerdings war das ein At2313 und nich ein mega16 jetzt 
beginnt das große suchen nach dem unterschied im code :(

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eventuell einfach mal das JTAG Interface mittels fuses ausschalten ;)

Autor: Rene Schir (gigastulle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läubi Mail@laeubi.de wrote:
> Eventuell einfach mal das JTAG Interface mittels fuses ausschalten ;)

Danke Danke Danke jetzt funzt did !!! das ein kleines Häckchen so viel 
ausmachen kann Meine schlaflosen nächte haben "vorerst" ein ende :D

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.