@Frank_R
Hi. In dieser einfachsten Variante wird der zweite Impuls "gepollt" (kommt von polling), d.h. der Eingang wird unentwegt abgefragt, solange, bis der Impuls erkannt wurde. Während dieser Abfrage kann der Prozi nichts anderes tun, weil er zu 100% damit beschäftigt ist. Besser (aber eben auch geringfügig aufwendiger) ist daher, den Eingang nur alle X µs oder ms abzufragen. Dazu verwendet man einen Timer, den man am besten per Interrupt steuert. Allerdings entsteht dadurch ein Messfehler, der maximal das Abfrageintervall als Größe annimmt. Um auch das zu umgehen, benutzt man den ICP Pin eines Prozies. Der ist dafür gedacht, Zeitintervalle sehr präzise zu messen, nämlich mit einem maximalen Zeitfehler, der etwa der Periodendauer des µCTaktes entspricht. Dieser arbeitet ebenfalls interruptbasiert (Programmierung!). Da es aber nur einen ICP gibt, manhunt aber 2 Lichtschranken hat, muss man diese Lichtschranken auch noch entsprechend verschalten, damit der Prozi die einzelnen Impulse an seinem ICP unterscheiden kann und sich die LS nicht gegenseitig stören. Wenn man den Externen IRQ nicht braucht, dann kann man diesen natürlich dazu verwenden, um den ersten Impuls zu erkennen und hängt die 2. LS an den ICP.
Manhunt ist neu, daher habe ich es einfach gemacht. Scheinbar kommt es ihm auf Einfachheit und geringe Kosten, nicht aber auf Eleganz an. Deine Lösungen sind elegant, aber z. Teil auch aufwändig. Außer die Idee mit dem ISF471, darauf bin ich garnicht gekommen.
@manhunt
Die Idee mit dem ISF471 ist gut: zwei davon links, die Sendedioden über ein Poti zur Helligkeitsregulierung rechts ins Tor, Ausgänge an ExtIRQ und ICP, programmieren und gut ist. Vorausgesetzt, die Torhöhe ist kleiner als der 2-fache Balldurchmesser.
Gruß