Forum: Mikrocontroller und Digitale Elektronik LCD an ATMega8 (aus dem Tutorial)


von ZoToS (Gast)


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.

von Jay (Gast)


Lesenswert?

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.

von ZoToS (Gast)


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.

von Denis (Gast)


Lesenswert?

Dreh den Kontast zurück.

von Jay (Gast)


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.

von avusgalaxy (Gast)


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

von ZoToS (Gast)


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

von Sebastian (Gast)


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

von Jens (Gast)


Lesenswert?

verdoppel die warteschleifen einfach ;)
du hast 8MHz und bei 4 klappt es also doppelt so lannge warten..

Gruss Jens

von ZoToS (Gast)


Lesenswert?

Ich stand einwenig auf dem schlauch. Es ist erschreckend wenn man weis
wie Einfach die Lösung ist nach der man so lange gesucht hat.

DANKE!

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
Noch kein Account? Hier anmelden.