Forum: Mikrocontroller und Digitale Elektronik Atmega8 und LCD


von MrBurns (Gast)


Lesenswert?

Hallo,

ich habe einen Atmega32 programmiert, läuft mit externem Quartz auf 16 
MHz (vom STK-600).
Habe damit ein HD44780 kompatibles LCD Display angesteuert. Mit dem 
Atmega32 läuft alles ohne Problem, das LCD stellt das dar was ich 
programmiert habe.
Nun habe ich einen Atmega8 und nutze dasselbe Programm wie für den 
Atmega32. Der Atmega8 bekommt auch denselben externen Takt von 16 MHz 
vom STK-600. Habe dieselben PINs von Port B genommen wie für den 
Atmega32 um das LCD anzusteuern, aber es erscheinen nur komische Zeichen 
auf dem Display.
Habe dann ein bisschen rumprobiert. Wenn ich den Atmega8 auf internen 
Oszillator (1 MHz) stelle und im Programm auch F_CPU auf 1000000UL 
einstelle klappt alles.
Wenn ich nun aber auf meinem STK-600 für externen Takt auch  1 MHz 
einstelle und die Fuses auf externen Takt (EXTLOFXTALRES_16KCK_64MS) 
stelle dann klappt die Ansteuerung des LCDs nichtmehr sondern es kommen 
nur komische Zeichen, obwohl die Taktfrequenz auch 1 MHz ist. 
Unterschied ist nur interner und externer Oszillator.
Habe nachgemessen, der Takt des STK-600 ist exakt 1 MHz.
Irgendwie will der Atmega8 den externen Takt nicht. Mit dem Atmega32 
klappt ja alles mit denselben Einstellungen / PIN-Belegung etc.. Habe 
auch mehrere Atmega8 probiert um defekte AVRs auszuschließen, aber immer 
exakt dasselbe Ergebnis.
Kann mir jemand sagen woran das liegt?

Vielen Dank!

von Sauger (Gast)


Lesenswert?

Nabend,

vergleiche die Belegung von Port B in den Datenblättern beider uC. Beim 
M8 ist B6/7 die externe Taktquelle.

MfG

von MrBurns (Gast)


Lesenswert?

Hallo Sauger,

danke für Deine Antwort, hast recht!
Bin genau im gleichen Moment drauf gekommen, habe einfach mal in der 
Programmierung Port D anstatt Port B genommen und dann ging es 
aufeinmal.
Dann habe ich ins Datenblatt gesehen und dasselbe gesehen wie Du.
Warst einwenig schneller ;-)

Danke nochmal vielmals!

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.