mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeitmessung: Atmega8535,C


Autor: Werner Hoch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgendes Problem:

Ich möchte mit dem Capture Eingang eine Zeitmessung machen, die länger
als 16bit ist.
Kürzere Zeiten funktionierne wunderbar.

In zwei aufeinanderfolgenden Capture Interrupts werden dazu die beiden
Werte (value1_low, value2_low) aus dem Capture Register in Variablen
übernommen und gespeichert.

Bei Zeiten größer 16bit müssen die Bits 17-32 durch dein
Overflow-Interrupt mitgezählt werden.

Das Problem:
Tritt ein Captureinterrupt ein, mit einem niedrigen Capturewert ein, so
kann ich nicht sagen, ob der Overflow-Interrupt-Zähler schon erhöht
wurde oder nicht.

Folgende Interupt Varianten sind dann möglich:

-- Anderer Interrupt (z.B. serielle Schnittstelle)
-- Capture Interrupt mit kleinem Wert
-- Overflow Interrupt

oder:

-- Overflow Interrupt
-- Capture Interrupt mit kleinem Wert

Der Unterschied der beiden Varianten ist, daß der Overflow Zähler zu
klein ist.

Gibts eine einfache Möglichkeit die richtige Meßwerte zu erhalten?

mfg
werner

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Tritt ein Captureinterrupt ein, mit einem niedrigen Capturewert ein,
> so kann ich nicht sagen, ob der Overflow-Interrupt-Zähler schon
> erhöht wurde oder nicht.

Du kannst doch das zugehörige Interrupt-Bit (für den Overflow-Int)
lesen und damit feststellen, ob Du den Zähler jetzt noch erhöhen
müßtest.  Danach solltest Du das Flag löschen, damit der Interrupt
nicht nochmal ausgelöst wird.

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.