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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren