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
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...
Karl schrieb: > Warum 10 Sekunden? Und wie genau? Wenn man Pulse die in größeren Abständen als 1s kommen misst und man im 1s Raster auswertet gibt das Chaos!
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.