www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Input Capturing


Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich habe eine Frage zum Input Capturing des Atmega32.
Ich will nur wissen ob ich seine Funktion richtig verstanden habe.

Ich konfiguriere mir den 16 bit Timer so das ich meine gewünschte
Frequenz erzeugen lasse. Wenn ich dann noch das Input Capturing per
TICIE1 in TIMSK aktiviere kann ich Signale am PIN PD6 erkennen. Je nach
Einstellung im TCCR1B kann ich auf steigende oder fallende Flanken
reagieren und auch den Noise Canceler einschalten. Wenn dann je nach
Konfiguration eine steigende Flanke an diesem PIN anliegt, wird der
aktuelle Zählerstand des Timers in das Input Capture Register1 kopiert
und dann kann ich diesen in der ISR des Capture Interrupts auslesen.
Das heisst doch, dass ich mir damit die Zeiten zwischen 2 steigenden
Flanken ausgeben lassen kann oder?

Gibt es sonst noch etwas, was man bei der Nutzung dieser Funktion
beachten muss?

Gruß,
Marian

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das heisst doch, dass ich mir damit die Zeiten zwischen 2 steigenden
>Flanken ausgeben lassen kann oder?

Ja, genau.

>Ich konfiguriere mir den 16 bit Timer so das ich meine gewünschte
>Frequenz erzeugen lasse

Was meinst du damit?
Es erleichtert den Umgang mit ICP sehr, wenn man den Timer "einfach so
durchlaufen" lässt. Du kannst natürlich per Prescaler die Frequenz
heruntersetzen.
Wenn du innerhalb der ISR die Flankenrichtung umschaltest, kannst du
auch Impulsdauern und nciht nur Periodendauern messen.

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich konfiguriere mir den 16 bit Timer so das ich meine gewünschte
>Frequenz erzeugen lasse

Was meinst du damit?

Damit meine ich, dass ich mir den Timer so zurecht lege das ich auch
einen Wert auslesen kann, mit dem ich dann vernünftig weiterrechne.
Sozusagen, dass er in ms-Takt hochzählt. Was bringt es mir denn sonst,
den aktuellen Timerstand abzufragen wenn ich nicht weiß, welche Zeit
vergangen ist? Verstehst du was ich meine?

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Verstehst du was ich meine?

ja. Das hängt mit dem Vorteiler und der Taktfrequenz zusammen.
Du kannst aber auch einfach den Mikrocontroller etwas rechnen
lassen...
Die Werte sind ja sowieso 16Bits lang. Dann subtrahiert man den älteren
vom neueren Wert und hat die Anzahl der Impulse zwischen den beiden
Ereignissen (das weisst du aber schon...).

>ms-Takt
ist aber verdammt langsam.

Was soll das denn am Ende werden?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was bringt es mir denn sonst, den aktuellen Timerstand abzufragen
> wenn ich nicht weiß, welche Zeit vergangen ist?

Warum solltest du das nicht wissen? Der µC läuft mit einem bestimmten
Takt, und der geht über den Prescaler an den Timer. Damit weißt du ganz
genau, mit welchem Takt dieser läuft.

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja sicher weiß ich das aber so müsste ich es ja noch explizit
umrechnen.
Wenn ich nun einen Timer mit nem Takt von 1ms(1000Hz) nehme, dann
brauche ich ja nur die 2 Zahlen zu subtrahieren und habe somit gleich
die verstrichene Zeit zwischen 2 Flanken. Wollte mir es halt nur recht
einfach machen.

Das soll mal ein Pulszähler werden. Ich bekomme von einem Pulssensor
immer einen Highpegel, wenn er einen Puls gemessen hat. Und ich finde,
da reicht eine Auflösung von 1 ms. D.h. ich zähle halt die Highpegel in
einer Bestimmten Zeit und kann somit dann den Puls pro Minute ausgeben.

Und mit dem Input Capture möchte ich halt die Zeit zwischen den
Impulsen messen und diese dann mitteln.

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.