Forum: Mikrocontroller und Digitale Elektronik Hz == Sekunde


von Richard Brose (Gast)


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??

von Gast (Gast)


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!

von Michael (Gast)


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ß

von Hannes L. (hannes)


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.

...

von Michael (Gast)


Lesenswert?

LOL!

Ich sach noch 2er Potenz!

von Michael (Gast)


Lesenswert?

Mensch, lese das ja jetzt erst. Bist Du es Richard? Richard Brose aus
Eixen?

von Ferrice (Gast)


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.

von Jens D. (Gast)


Lesenswert?

http://www.mikrocontroller.net/forum/read-2-289201.html#new

hier ist nocheinmal alles beschrieben.

je nach controller kannst du noch einen 2ten passenden uhrenquarz
ranhaenngen und darueber dann die den timer steuern

von Hannes L. (hannes)


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...)

...

von Roland P. (pram)


Lesenswert?

Dann zählt man anstatt bis 4096 bis auf 3600. Hauptsache die Teilung mit
dem Vorteiler geht auf
3686400 / 1024 = 3600

Gruß
Roland

von hans dieter (Gast)


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.

von Richard Brose (Gast)


Lesenswert?

ich dachte im nehme 1000 Hz für eine Sekunde.

Was ich machen wollte ist ja einen genauen Takt von einer Sekunde.
Mir war wichtig zu begreifen wie das ausgerechnet wird.

von Hannes L. (hannes)


Lesenswert?

> Mir war wichtig zu begreifen wie das ausgerechnet wird.

Und? - Hast du's nun begriffen? Oder war mein Rechenweg zu
kompliziert?

...

von Richard Brose (Gast)


Lesenswert?

Ne war sehr gut erklärt!

Aber wieso das ODER?

39.062 oder 30.063 Zimerticks.
Was ist der unterschied?

von Roland P. (pram)


Lesenswert?

ja weil die Rechnung 10.000.000 / 256 = 39.062,5 nicht genau aufgeht.

wegen dem ,5 musst du einmal bis 39062 und dann bis 39063 zählen, damit
sich der Fehler den man macht wieder ausmittelt.

Gruß
Roland

von Hannes L. (hannes)


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.

...

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.