Hallo Tanja,
willkommen im Forum.
Vermutlich also eine Geschwindigkeitsmessung. Nix "Art" (polemisch grinsend).Zitat von Tanja1986
Prima, "steigende ..." und so zeigen, dass Du Dich mit der Materie schon auskennst. Wird die Geschwindigkeit eines Objekts gemessen oder können konkurrierende Objekte evtl. gemeinsam durch die Lichtschranke fahren? Ich nehme mal an - nur ein Objekt.Zitat von Tanja1986
Noch mehr Polemik (aber nicht wirklich):
Ich gehe jetzt also davon aus, dass Du sowohl die Momentan-Geschwindigkeit als auch den Zeitpunkt dieser Geschwindigkeit haben willst. Um den Zeitpunkt festzuhalten, muss eine Uhr mitlaufen. Jetzt wäre die Frage offen, wie genau die Zeitnahme und die Geschwindigkeit sein muss. Die Genauigkeit der Geschwindigkeit hängt ja z.T. von der Länge der Messstrecke ab. Für ne Durchschnittsgeschwindigkeit würde ja die "Runden-"Zeit reichen.
Ich habe etwas ähnliches so gelöst, dass ich mir einen Timer so initialisiert hatte, dass der alle 50 µs in einer ISR einen Zähler hochsetzt. Bei 16bit-unsigned-integer sind das dann max. über 3 sec. Das kann man für Langzeitmessungen so abfangen, dass z.B bei > 20000 der 50µs-counter auf Null und ein Sekundenzähler eins rauf gesetzt wird.
Nun könntest Du den INT0 (ein "externer" Interrupt, löst einen Interrupt aus wenn ein Signal am Pin ansteht, der hat noch einen Bruder, den INT1) auf steigende (od. fallende) Flanke initialisieren und eine ISR dazu bauen. In dieser ISR liest Du den aktuellen Zeitstand aus, subtrahierst ihn vom alten Wert, sicherst den neuen Wert - der wird "neuer" alter *gggg* - und musst noch den/die Sekundenwechsel abfangen. Damit könntest Du die Torzeit (oder die Durchfahrtzeit) auf 50 µs genau auflösen und den momentanen Zeitstand notieren. Wenn Deine Genauigkeitsforderung höher ist, könnte man das auch etwas anders machen.
Bevor ich noch ein ätzend seitenlanges Tutorial schreibe,
Frage: Wäre das in Deinem Sinne?
Ach so, noch etwas: guck Dir vielleicht mal diesen Link an und zur Abrundung auch noch diesen hier.
Lesezeichen