Gast
#2643389
Hallo, ich möchte gerne einen ATmega1284P mit 20MHz laufen lassen. Allerdings hab ich das Gefühl mein Prozessor werkelt mit 3.68 MHz. Ein Timerinterrupt sollte alle 2.5ms auftreten, tut dies aber nur alle 13,7ms Das entspricht ca. Faktor 5.5. 20 / 5.5 = 3.68 Die Timereinstellungen sind Prescaler 8, Comparewert = 6249 (also ein Interrupt alle 2.5ms) Das ist mein erstes Indiz. Um das zu überprüfen hab ich im Datenblatt geschaut mit welchem Wert das USART Baudratenregister geladen werden muss, um bei 3.68 MHz eine Baudrate von 115.200 zu erzeugen. UBRR = 3. Diesen Wert hineingeschrieben und zyklisch ein Testzeichen ausgegeben: Siehe da, ich empfange ein Wunderschönes 'c', genau was ich wollte. Zweites Indiz dass mein uC mit 3.68MHz läuft. Mein erster Gedanke war natürlich "falsche Fuses". Aber wenn ich den internen Prescaler versehentlich aktiviert hätte dann wäre mein uC ja um den Faktor 8 langsamer anstatt 5.5 :/ Wenn ich den internen RC Oszillator benutzen würde hätte ich entweder 1 oder 8 MHz. Den Quarz hab ich heute geliefert bekommen (Pollin...). Die Bestellnummer hab ich überprüft, die ist korrekt. Der Quarz ist beschriftet mit R200YNB5u Ich hab noch einen zweiten bekommen, dieser trägt die Beschriftung R200DNB5K und zeigt das selbe Verhalten. Hatt jemand ne Idee? Wo ist mein Denkfehler? Viele Grüße, Karlo