atmega8 - Zeitbeschränkte Taktzählerfunktion

Gast #3195272
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
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
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

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