Input capture

Gast #400680
Lesenswert?
• ▲
▼
Moinsen habe da ein kleines (für mich großes) Problem möchte mit einem
µC die Zeitdifferenz von vier aufeinander folgenden unterschiedlichen
Signalen(Rechteck) messen.
Die Zeit bis das letzte Signal durch ist beträg max. 20ms.
Signal 1 soll dei ganze Messung starten.
Schön währe noch wenn rauschen erkannt werden könnte.
Hat jemand damit schon Erfahrungen gemacht, kann Tipps geben usw.
Auch ja ich möchte den Code in C umsetzen.
Auch bei dem zu verwendenden µC habe ich mich noch nicht festgelegt bin
aber natürlich für Vorschläge offen.
Möchte mich an dieser Stelle für alle Bemühungen eurerseits bedanken.
MfG Thorsten
Gast #400681
Lesenswert?
• ▲
▼
>Hat jemand damit schon Erfahrungen gemacht, kann Tipps geben usw.
ja.

>vier aufeinander folgenden unterschiedlichen Signalen(Rechteck)
Grundsätzlich kannst du nur die Zeit zwischen 2 Flanken messen.
Atmel hat auch eine Application Note dazu.

>Auch ja ich möchte den Code in C umsetzen.
Klingt, als suchtest du nach einer fertigen Lösung. Sowas findet man
dann aber eher in der Codesammlung.

Grundsätzlich gilt:
Timer initialisieren und laufen lassen.
ICP-Flanke einstellen (steigend oder fallend).
in der ICP-ISR die Den Timerwert aus dem ICP-Register auslesen und
zwischenspeichern
Bei Bedarf die ICP-Flanke ändern.
Beim nächsten ICP-Interrupt wieder den Timewert aus dem ICP-Register
auslegen auslesen und den anderen davon subtrahieren. Damit hätte man
schon mal die eine Länge (Pulslänge).
Wieder die ICP-Flanke ändern.
Bei nächsten ICP-Interrupt hat man die Gesamtdauer,
Wenn man die erste Zeit von der aktuellen subtrahiert.
Man sollte dann auch die letzte "Startzeit" durch die aktuelle
ersetzen.
Zur Berechnung: Man arbeitet hier mit einem begrenzten Zahlenraum, was
soviel heisst, dass es eigentlich nicht interessiert, ob der neue Wert
aufgrund eines Überlaufs kleiner als der alte Wert ist. Es kommt bei
einer additiven Berechnung schon das richtige heraus.

Antwort schreiben

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.

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.