Forum: Mikrocontroller und Digitale Elektronik Lichtschranke


von sascha (Gast)


Lesenswert?

Hallo,

habe für eine Carrera-Bahn, zwei Lichtschranken gebaut, um die 
Rundenzahl und Rundenzeit zu erfassen. Die Lichtschranken sind mit nem 
IS471 und einer SFH409 aufgebaut. Als Controller nutze ich einen 
T89C51RD2. Wenn die Lichtschranke unterbrochen wird, wird ein Interrupt 
erzeugt, in dem der Cotroller die Runde aufaddiert.
Nur mein Problem ist, er zählt nicht einmal, sondern mehrfach.
Mal einen Schritt, mal zwei oder auch mal mehrere.
Habe es schon mit ner Warteschleife in Interrupt-Routine versucht, half 
aber nicht.
Hat jemand ne Idee?

Mfg sascha

von Frankl (Gast)


Lesenswert?

Nach dem Auslösen des Interruptes muß Du ihn als erstes sperren für ca. 
1 Sekunde und danach freigeben.

von sascha (Gast)


Lesenswert?

Danke,

habe es anders gemacht. Lösche das Interrupt-Bit beim verlassen der 
Interruptroutine und es funktioniert.
Jetzt versuch ich mich gerade in der erfassung der Rundenzeit.


Mfg Sascha

von Frankl (Gast)


Lesenswert?

Wenn die Interrupt-Service-Routine kurz ist (ohne delay) und die 
Lichtschranke vom Fahrzeug mehrmals unterbrochen wird, kommt es zu 
Fehlzählungen.

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
Noch kein Account? Hier anmelden.