Timerparameter bei 7,3728MHz

Gast #364505
Lesenswert?
• ▲
▼
Hallo Leute,

ich habe mal wieder ein Problem mit den Timern meines Atmegas32. Ich
möchte gerne damit eine Genauigkeit von 1ms erreichen. Als erstes hatte
ich einen 4 MHz Quarz, mit welchem es sehr gut funktioniert hat. Da ich
einfach durch 8 geteilt habe und dann im CTC Modus bis 250 gezählt habe
und somit waren 0,0005s vergangen. Das fand ich sehr gut:). Nun habe ich
einen anderen Quarz (7,3728MHz) und damit das Problem, dass ich nicht
weiß, wie ich jetzt meine Timerparameter einstellen muss, damit ich
wieder eine Auflösung von einer Millisekunde komme. Hat das schonmal
jemand gemacht? Ich habe jetzt schon ne ganze Weile im Forum rumgelesen
aber da finde ich immer nur Timer mit geraden Frequenzen oder einer
Auflösung von einer Sekunde.
Kann mir da jemand mal einen Denkanstoss geben, wie ich mir meinen
Timer konfiguriere um halt die 0,001 Sekunden zu erhalten.

Gruß Marian
Gast #364508
Lesenswert?
• ▲
▼
Die Feinauflösung muß man eben mit "NOP" erreichen. Wenn der Timer
einen Interrupt auslöst, einfach noch passend NOPs einfügen bis zum
Neustart des Timers, das geht dann halt nicht im free-run-Modus.
Gast #364510
Lesenswert?
• ▲
▼
Also ich brauche die 1ms fast exakt genau. Möchte halt eine sehr genaue
Zeitmessung machen. Da mein µC eigentlich sehr oft resetet wird, reicht
mir meine Lösung auch schon. Der Überlauf (also die Zeitverschiebung)
ist so gering, dass ich damit weiterarbeiten kann. Es sind ja nur
einige µs die mir verloren gehen aber das kann ich locker verkraften.

Danke für eure Mühe.

Gruß,
Marian
#364513
Lesenswert?
• ▲
▼
Hi,

>Was war stärker?
Die Versuchung, dazu was zu sagen anstatt dazu nichts zu sagen.

Angenommen der Quarz ist genau: Wie im thread gesagt: 2^3*5^3=1000 paßt
nicht in 2^15*3^2*5^2=7372800 rein, da fehlt ne 5. Krücke vielleicht so:
5ms sind 5*7372.8=36864ticks=4*7373ticks+1*7372ticks, i.e viermal ist
Dein Vergleichswert für den Zähler 7373, beim fünften Mal änderst Du
den (in der ISR?) auf 7372. Auf die Dauer geht die Uhr richtig, der
Jitter beträgt allerdings einen tick.

Der Quarz ist aber nicht genau. Der Quarz hat bestimmt ne Ungenauigkeit
(Mittenfrequenz, Temperaturdrift, aging) von 50ppm, macht gute 368Hz.
Der Fehler, 5*7373=36865 anstatt 4*7373+7372=36864 zu nehmen, beträgt
hingegen nur ca 27ppm. Wenn Du's genau exakt willst, muß Du das Ding
temperieren und mit nem Trimmkondensator ziehen. Dazu brauchst Du nen
besseres Normal: 10^-7 Ofenquarz, 10^-8 DCF77 Frequenz, 10^-10 dieser
englische Sender Droitwitch !?

Wie genau willst/mußte denn (das is ne Zahl!).

>PS: diese 3 Worte habe ich mit Absicht gewählt!
Die Absicht sich mir nicht erschlossen.

Sorry
Cheers
Detlef

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.