3662*60/50=4394,4?
Sind die 16MHz intern?
3662*60/50=4394,4?
Sind die 16MHz intern?
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Davon gehe ich aus (dass sie intern sind). Es ist auch ein 16MHz Quarz und ein Uhrenquarz integriert, aber ich bekomme nicht heraus an welchem Port und für welchen timer.
Den ganzen Code kann ich hier nicht rein tun, das sprengt das Forum. Wie tut man eigentlich Code in einer Box zum scrollen darstellen?
Was meinst Du mit 3662*60/50=4394,4?
So war das gemeint (bei ungefähr 50 Sekunden für eine Minute):
oder 4578*60/68Code:while (1) {do something if flag >= 4394} }
Geändert von radbruch (31.08.2011 um 17:24 Uhr)
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Les dir die Doku zu dem Board durch da steht drin wo was angeschlossen ist. Außerdem sind die Timer für das Quarz egal. Es sind zwei angeschlossen und dann musst du dem Timer nur noch sagen welche Taktquelle er nehmen soll.
Den Code machste mit [co de] und am Ende [\co de]. Natürlich zusammen geschrieben.
Welchen Takt du benutzt hängt von deinen Fusebits ab. Wenn du nen externen gewählt hast nimmt er den 16MHz Quarz. Wenn du intern hast wird der Takt intern generiert und dann kann diese Schwankung schon mit der Ungenauigkeit des internen Oszillators zu tun haben.
Schau da nochmal nach.
Er nimmt den (auf Fusebit SUP_CKSEL) EXTXOSC_8MHz_XX_16KCK_65ms. Alle anderen Fusbits bis auf SPIEN sind aus.
Nimm den 16bit Timer und stell den Prescaler auf 1024. Dann zählt er in 1 Sekunde bis 15625. Nun lädst du den Timer mit 49910 vor. Nun hast du jede Sekunde einen Timerinterrupt.
Danke für Eure Hilfe. Ich habe es mit dem 32kHZ Quarz auf der Platine gelöst (danke an Kampi für den Tip nochmal in die Doku zu schaun). Mit:
TCCR2B |= (1<<CS22)|(1<<CS20); //(1<<CS21)|
TIMSK2 |= (1<<TOIE2);
ASSR |= (1<<AS2);
ASSR &= ~(1<<EXCLK);
macht es jetzt jede Sekunde einmal Klick (der Interrupt wird ausgelöst). Mit 60x komme ich genau auf 1 min.
Dank Euch.
Lesezeichen