Hallo, ich möchte die Frequenz eines Signals messen. Wenn die Frequenz größer 150 Hz ist soll ein Ausgang geschaltet werden. Dafür hatte ich mir den Tiny13 ausgesucht, da er schön klein ist und sich mit WinAVR programmieren läßt. Eigentlich wollte ich einen Counter über einen ext. Interrupt getriggert laufen lassen und per Timer alle 100 ms nachschauen, ob das Limit überschritten ist. Dafür bräuchte ich aber Timer und Counter. Leider habe ich jetzt festgestellt, das der Tiny13 ja nur einen Timer/Counter hat. Alternativ könnte ich auch die Zeit zwischen zwei Ereignissen am ext. Interrupt messen. Zeit zwischen 2 Signale ist ja ca. 7,5 ms. Kann ich den Timer im 0,2 ms Takt laufen lassen und durch den ersten Interrupt starten und vom zweiten wieder stoppen und dann die Zeit auswerten? Würde das so funktionieren? Danke schomal Werner
pseudocode: signal int { zeit=TIMER; TIMER=0; if ((zeit>grenzwert) || overflow) { frequenz hoeher; overflow=0; } else frequenz niedriger; } signal timer { overflow=1; } gruss, alex.
Hi Alex, sieht gut aus. Ich werde das dann mal so probieren. DANKE Werner
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.