Hallo Leute... Ich messe mit dem ICP eine Frewuenz eines Motors. Wenn der Motor steht, möchte ich jedoch ein Signal erhalten, welches mir dies bestätigt...wie mache ich das am besten? Achso, ich verwende einen Atmega32 und programmiere in C. MFG Kons
Bei einem Overflow des Timers berechen wie groß die Periodendauer bisher ist, und dann irgendwo einfach eine Grenze setzen (z.B. bei 1s). Ist die bisher gemessene zeit größer, wird sie auf den maximal darstellbaren Wert gesetzt (bei z.B. 32 bit also 0xFFFFFFFF), und es wird so getan als ob die Periode beendet wäre.
Stichwort: Timerüberlauf Nimm eine Hilfsvariable (z.B. "still") und setze diese in der ICP-Routine auf einen bestimmten Wert (ich schlage den Wert "2" vor). In der TOV-Routine prüfst du die Variable "still" auf den Wert "0". Wenn der Wert == 0 ist machst du nichts weiter. Wenn der Wert != 0 ist dekrementierst du die Variable. Auf diese Weise ist der Wert der Variable "still" immer ungleich 0 (also "wahr") solange sich der Motor überhalb einer Mindestdrehzahl dreht. Anderenfalls ist der Wert == 0. Gruß, Magnetus
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.