atmega8 - Zeitbeschränkte Taktzählerfunktion

Gast #3195272
Lesenswert?

Hallo zusammen,
ich möchte einen extern gegebenen Takt (Reed-Kontakt), welcher an PB5 
hängt, zählen und über UART ausgeben.

Die Ausgabe über UART ist kein Problem.

Da der Taktzähler als Funktion laufen soll, soll die Funktion auf 10 sec 
Mess bzw Zähldauer beschränkt sein.

Ich habe mir das so vorgestellt:

Der Takt an PB5 wird für 10 Sekunden gezählt. Anschließend wird das 
Ergebnis mal 6 genommen, und der Wert der dabei rauskommt, per UART 
ausgegeben.

Allerdings habe ich keine Ahnung, wie ich diesen Zählvorgang auf 10 sec 
beschränken soll.

Programmiert wird in der Programmiersprache C. Der Controller läuft bei 
8Mhz über den internen Oszillator.

VG
LD2307
Gast #3195301
Lesenswert?

Nimm n Timer, erzeuge dir ne Zeitbasis. Nimm eine Variable, die in oder 
dekrementierst du in der Timer ISR und solange deine Variable != 0 oder 
beim hochzählen != deinen 10s dann messen, ansonsten halt nicht 
messen...
Gast #3197837
Lesenswert?

Hallo!
Über den Zweck Deiner Konstruktion schweigst Du Dich ja aus. In vielen 
Fällen ist es bei langsamen Impulsfolgen besser, die Abstände zu messen. 
Dabei erhält man z.B. bei einem Fahrradtacho zu jedem Impuls eine 
Geschwindigkeit und nicht erst nach 10 Sekunden, dann noch mit 
entsprechend hohem Restfehler!

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