Hz == Sekunde

Gast #277507
Lesenswert?
• ▲
▼
Hallo Leute,

ich habe verstehe das Berechnen der Takte bei einem ABR noch nicht ganz
richtig.

So ich habe einen ATMEGA32 mit 10 Mhz. Und will z.B. das er jede
Sekunde einen Interrupt wirft.
Dann rechne ich einfach
10 000 000/8 = 1250000 Hz
1250000/1000 Hz = 1250 Hetz

Ist die Rechnung richtig?

65536 - 1250 = 64286

OCR2 = 64286  ??

Heißt das jetzt er macht in einer Sekunde 64286 Takte??
Gast #277508
Lesenswert?
• ▲
▼
Hertz = 1/sekunde

das bedeutet du musst 1/10*10^6 = 100*10^-9 oder 100usec pro Takt
rechnen!

Was soll das 10*10^6/8 ? soll das ein Vorteiler sein? Und wie kommst du
auf /1000? Beschreib das mal ein bissel genauer!
Gast #277509
Lesenswert?
• ▲
▼
Geiler Betreff!

Ich kenne mich mit dem Kram nicht aus, aber irgendwat ist ev von der FH
hängen geblieben.

8 ist Dein Grundvorteiler für den Counter?
1000 der optionale? Keine 2er Potenz??

Wenn Dein Counter aufwärts zählt, dann ist Deine Rechnung richtig. Beim
Überlauf gibt es dann einen IR!

Nein, Dein Counter wird 1250 mal die Sekunde hochgezählt!

Hoffe, ich liege bei meinen Annahmen richtig.

Gruß
#277510
Lesenswert?
• ▲
▼
Bei 10 MHz braucht der 10.000.000 Takte für eine Sekunde.

Der 16-Bit-Timer kann von 0 bis 65.535 zählen.

Da 10.000.000 / 65.536 knapp 153 ist, brauchst du einen Vorteiler, der
größer ist als 153. Als Vorteiler stehen 1, 8, 64, 256 und 1024 zur
Auswahl. 256 ist also der erste, der größer als 153 ist.

Da 10.000.000 / 256 = 39.062,5 ist, brauchst du bei Vorteiler 256 für
eine Sekunde 39.062 oder 30.063 Zimerticks.

Für diese Berechnungen braucht man keine speziellen Formeln, es genügt
zu wissen, dass Hz (Frequenz f in Hertz) die Anzahl der Takte pro
Sekunde ist und wie man mit dem Dreisatz umgeht.

Mit OCR2 wird da aber nix, der 16-Bit-Timer ist Timer1. Timer2 hat nur
8 Bit.

...
Gast #277513
Lesenswert?
• ▲
▼
Am besten ist immer eine Quarzfrequenz die du mit einer zweierpotenz auf
"genau" 1Hz bringen kannst.

Ich habe z.b einen 4.194304 Mhz Quarz genommen.

4194304/1024 = 4096

d.h. du nimmst einen vorteiler von 1024 und zählst bis 4096
Dann hast du einen sekundentakt.
#277515
Lesenswert?
• ▲
▼
> Am besten ist immer eine Quarzfrequenz die du mit einer
> zweierpotenz auf
> "genau" 1Hz bringen kannst.
>
> Ich habe z.b einen 4.194304 Mhz Quarz genommen.

Und was macht man, wenn man außer dem Sekundentakt noch auch noch UART
mit einer PC-üblichen Baudrate braucht?

;-)

Jens, ist sicher 'ne gute Idee, ich denke aber, das hat noch 'n paar
Wochen Zeit, jetzt sind erstmal 'n paar einfachere Dinge zu
verstehen...

;-)   <-- (noch'n Smilie, sicher iss sicher...)

...
Gast #277517
Lesenswert?
• ▲
▼
die baudraten für die pc entstehen ja auch nur durch teilung einer
festen frequenz mit 2er-potenzen nicht nichts anderes. Auf den Altern
Mainboards findet man noch schöne Quarze mit gebrochenen Frequenzen,
heute machen das oft PLLs aus irgend einer kranken schwichenfrequenz.
#277522
Lesenswert?
• ▲
▼
> Aber wieso das ODER?
>
> 39.062 oder 30.063 Zimerticks.

Das ist natürlich ein Tippfehler, genau wie Zimerticks. Sowas passiert,
wenn man lange genug Forum liest und ständig mit Tippfehlern beschmissen
wird... ;-)

Es soll natürlich "39062 oder 39063 Timer-Ticks" heißen.

Entscheiden musst du dich, weil in die Register nur ganze Zahlen
passen, aber eigentlich ein Wert von 39062,5 gebraucht würde. Musst
halt schaun, ob dein Quarz vor oder nach geht und den richtigen Wert
wählen. Oder du wechselst ständig hin und her.

Ich würde für eine Uhr aber den Hundertstelsekundentakt vorziehen und
mit einer zusätzlichen Variable (Register) für Hundertstelsekunde
arbeiten.

...

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