Baudratenquarz und Zeitmessung

OP #1734363
Lesenswert?

Hi!
Ich verwende einen Baudratenqarz mit 14,7456 Mhz beim ATmega16.

Für eine Berechnung muss ich eine möglichst exakte Zeit messen. Die 
Messzeit beträgt mind. 0,5s. D.h. 1ms Genauigkeit wäre schon super.

Ich frage mich jetzt, wie ich den Prescaler im ATmega einstellen muss, 
um für einen Interrupt z.b. Genau 1 ms zu brauchen. Oder 1 µs. Dies 1000 
mal aufaddiert ergibt ja auch 1ms.

Die Rechnung wäre ja ungefähr so:

x = OCR1A bzw OCR0, je nachdem, ob Timer0 oder Timer1 verwendet wird.

Für t müsste ich eben auf eine ganze Zahl kommen, und das schaffe ich 
durch probieren irgendwie nicht wirklich
#1734380
Lesenswert?

@  Jürgen Hems (misteret)

>Ich verwende einen Baudratenqarz mit 14,7456 Mhz beim ATmega16.

>Für eine Berechnung muss ich eine möglichst exakte Zeit messen. Die
>Messzeit beträgt mind. 0,5s. D.h. 1ms Genauigkeit wäre schon super.

Easy.

14,7456 MHz / 1ms = 14745 Takte. Die Nachkommastelle von 0,6 kann man 
mit einem Fehler von 40ppm in den Skat drücken. Siehe Timer und 
CTC-Modus.

>Ich frage mich jetzt, wie ich den Prescaler im ATmega einstellen muss,
>um für einen Interrupt z.b. Genau 1 ms zu brauchen.

Siehe oben.

> Oder 1 µs.

Das willst du nicht wirklich ;-)

>Für t müsste ich eben auf eine ganze Zahl kommen, und das schaffe ich
>durch probieren irgendwie nicht wirklich

Schon mal was von Grundrechenarten gehört? Verhältnisgleichung, Dreisatz 
und so?

Kopfschüttelnd
Falk

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