LCD an ATMega8 (aus dem Tutorial)

Gast #158368
Hallo,
ich habe mir ein Board (AVR Entwicklungsplatine ATmega8/ATmega48 von
OLIMEX) zugelegt. Das ich an PORTB statt PORTD wie im Tutorial
beschrieben angeschlossen habe. Nun habe ich im Quellcode alle PORTD
durch PORTD ersetzt und alle DDRD durch DDRB. Leider springt das
Display bei mir nicht an (Es bleiben die beiden Balken die immer nach
anlegen der Betriebspannung auftauchen).

Quellcode kopiert aus dem AVR-Tutorial.
AVRStudio PORTD->PROTB, DDRD->DDRB (mit den Warteschleifen gespielt)
Hex File mit yaap zum Controller geschickt und mit Verify Flash
geprüft.
Gast #158369
Die beiden Balken?
Meinst du es bleibt ales schwarz?

Dann dreh mal am Poti für die Displayintensität. Vielleicht steht dein
Kontrast ja auf volle pulle.
Gast #158370
Danke für die schnelle Antwort.
Ja der steht auf volle pulle. Das sollte aber nicht machen ich habe das
Display vorhin noch am LPT1 vom Rechner getestet.
Was ich vorhin noch vergessen habe die Fusebits habe ich auch gecheckt.
Gast #158372
Naja an den Fuse Bits wird das wohl kaum liegen. Na wenn der Kontrst
voll aufgedreht ist kann man ja auch nix sehen. Aber wirst du
mittlerweile ja dran herrumgedreht haben.
Also wenn es vorher funktioniert hat und jetzt nicht und du nur von
einen auf den anderen PORT gelegt hast kann es nicht an vielen Dingen
liegen. Geh mal Systematisch vor.

Kontrastspannung bzw. Poti ok?
PINS wirklich äquivalent getauscht? PORTB BIT0 -> PORTD BIT0 usw.?
PINS richtig als Aus- und Eingänge initialisiert?

Und zur Not - lass es einfach an PORTB :). Ist doch egal welchen PORT
du benutzt wenn du den MEGA8 eh nur fürs display benutzen willst.
Gast #158373
Hi ZoToS...

Mit wieviel Mhz läuft dein Atmega 8?

8 Mhz sind eindeutig zu viel für das Beispielprogramm.

Es kann sein, wenn du zu schnell am weg bist, daß dann das Display
nicht mehr mitkommt.

Versuch es mal mit einem Mhz oder so.

Gruß Avus
Gast #158374
Vielen Dank für Euere Tips!

Kontrast war nicht das Problem. Das mit den 8MHz wird wohl das Problem
sein. Ich will die 8MHz aber gerne beibehalten und die warte Schleifen
anpassen. Nur habe ich keine Ahnung wie ich diese berechnen muss das
50µs und 5ms raus kommen?
Das mit dem PORTB habe ich gewissenhaft geprüft und Bit für Bit ist von
D zu B getauscht. Den PortD möchte nicht für das Display nehmen da ich
im nächstenschritt auch die UART Schnittstelle testen möchte.

Gruß
Marcus
ZoToS
Gast #158375
Also wenn du den delay ändern willst..
du muß eine bestimmt anzahl von takten "warten"
bei 8mhz:
50µs : 1/8.000.000=> zeit pro takt
       50µs/zeit pro takt=> anzahl takte die du warten mußt

das ganze kannst du auch wunderbar im simulator testen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.