Milliesekunden seit einem bestimmten Zeitpunkt messen

Persönliche Seite #859982
8-bit Timer bei 4 MHz und 1 Millisekunden Auflösung ist eine schlechte 
Auswahl.

Die verschiedenen AVR-CALC Tools zur Berechnung günstiger 
Prescaler-Werte und TCNT-Reload-Werte spucken immer nur krumme Zahlen 
aus.

Rechnerisch genaue Millisekunden (ohne Beachtung der Quarzungenauigkeit) 
sind bei diesen Vorgaben mit dem 16-Bit Timer möglich.
#860062
Was ist denn der "bestimmte Zeitpunkt"?

Externes Ereignis (Signalflanke): -> Input Capture (Int-Eingang geht 
nur, wenn das System ohne Interruptsperren betrieben wird, sonst geht 
eine unbekannte (?) Anzahl Zyklen verloren)

Internes Ereignis (Software setzt den Startzeitpunkt): -> Output Compare 
Interrupt

Wie genau muß die Messung sein?
Kann die Messung einige Prozent abweichen? Dann kann man den Prescaler- 
und OC-Wert evtl. einer anderen Aufgabe (PWM?) unterordnen.
Oder darf die Abweichung die Quarzungenauigkeit nicht übersteigen? Dann 
sind Prescaler und OC-Wert so zu wählen,  daß der OC-Interrupt eben 
exakt in 1/n ms (n ganz) periodisch zuschlägt, so daß durch zählen der 
Interrupts und Teilen durch n die Zeit in ms ermittelt werden kann.
Moderator Persönliche Seite #860134
Alan wrote:

> Es ist ein ATMega8.

Dessen Timer 0 ist ziemlich blöd und kann kein CTC.  Timer 2 kann es
aber, damit könntest du einen Prescaler von 8 wählen und OCR2A auf
250 setzen.  Wenn du die zugehörigen Interrupts auswertest, hast du
mit jedem zweiten Interrupt einen Millisekundentakt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.