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

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