LCD an ATMega8 (aus dem Tutorial)

Gast #158368
Lesenswert?

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 #158370
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren