ATMEGA128 Input Capture Fragen zur Zeitmessung

Gast #1316224
Hallo Leute,

ich kenn mich mit Softwareschreiben nicht so gut aus und habe folgende 
Problemstellung:

An einem ankommenden Signal soll die High-Zeit TH gemessen werden.
TH kann zwischen 2-5 ms liegen. Die Abweichung zweier 
aufeinanderfolgender TH Zeiten darf +/-2% nicht überschreiten (bei TH 
zw. +/-20µs und +/-100µs).
Die Low Zeit TL ist ein ganzzahliges vielfaches n von TH. n kann max. 15 
sein.
Anschliessend erfolgt nochmals ein Puls mit TH, der gleichlang dem 
ersten sein muss, ansonsten handelt es sich umeinen Fehler.

Signal:
    _____                          _____
___|  TH  |_____TL = n * TH________|  TH  |___

Das Signal habe ich an OC1 (PD4) angeschlossen.

Soweit ich bisher gelesen habe, kann man sowas mit dem Inputcapture des 
ATMEGA128 erschlagen.
Bei steigender Flanke soll mit der Messung gestartet werden, bei der 
nächsten fallenden gestoppt. Dieser Wert TH soll dann auf Gültigkeit 
überprüft werden (zw. 2-5ms) und dann als Grundlage für die TL 
Berechnung dienen.
Die nächste Steigende Flanke legt die TL Zeit ja fest.

Wie kann ich denn das softwaretechnisch realisieren?

Viele Grüsse und danke für Eure Hilfe!!

Christian

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.