www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hz == Sekunde


Autor: Richard Brose (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LOL!

Ich sach noch 2er Potenz!

Autor: Michael (Gast)
Datum:

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

Autor: Ferrice (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jens D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...)

...

Autor: Roland Praml (pram)
Datum:

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

Gruß
Roland

Autor: hans dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Richard Brose (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mir war wichtig zu begreifen wie das ausgerechnet wird.

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

...

Autor: Richard Brose (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne war sehr gut erklärt!

Aber wieso das ODER?

39.062 oder 30.063 Zimerticks.
Was ist der unterschied?

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.