Hallo Zusammen Dies ist mein erstes Projekt mit einem Mikrocontroller und Teil einer Arbeit in meiner Ausbildung. Mit einem PIC16F877A möchte ich die Frequenz eines Signals von 1Hz bis 10kHz messen. Die gemessene Frequenz sollte dann mit einem wählbaren Faktor von 0.01-999 geteilt oder vervielfacht und an einem Ausgang als Signal wiedergegeben werden können. Hab schon einige Beiträge zur Frequenzmessung gelesen, die meisten beziehen sich aber auf höhere Frequenzen und ich wurde nicht recht schlau daraus. Die Frequenzmessung wollte ich mit dem Capture Modus dessen Zeitbasis vom Timer1 stammt erledigen. Bei einer ersten steigenden Flanke am Pin RC0 soll der Timer1 auf 0 gesetzt werden und bei der nächsten steigenden Flanke der Wert des Timer1 per Interrupt ausgelesen und dann umgerechnet werden. Das Problem liegt nach meinen Berechnungen nun darin dass nur Frequenzen bis ca. 9Hz und nicht tiefer gemessen werden können, da der Timer1 sonst immer zu früh überläuft und der Zählwert verloren geht. Für meine Anwendung wäre es aber wichtig, Frequenzen schon ab 1Hz genau zu messen. Danke für eure Hilfe
Ich kenne die PICS nicht, aber ist es möglich das Signal auf einem zweiten Timer zu legen, welche für niedrige Frequenzen ausgelegt ist? Denn "Rest" müsste deine Software machen... Alternativ kann man den Eingang dauerhaft in einer Busy-Loop abfragen und den Timer auswerten. Zugegeben nicht elegant...
Tom F. schrieb: > Das Problem liegt nach meinen Berechnungen nun darin dass nur > Frequenzen bis ca. 9Hz und nicht tiefer gemessen werden können, da der > Timer1 sonst immer zu früh überläuft und der Zählwert verloren geht. Hallo Tom, Du könntest den Interrupt für Timer 1 Overflow aktivieren und die Anzahl der Überläufe zählen. Damit kannst Du dann den Zählerwert berechnen: Überläufe x 2^16 + Timer1 Gruß John
Danke für die Tipps ! Das mit den Überläufen zählen leuchtet mir ein, werds dann mal ausprobieren. Gruss
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.