Atmega8 und LCD

Gast #2569603
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!
Gast #2569634
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!

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