Also in normalen C würdest du das am Besten mit nem Thread lösen. Sowas gibts bei µC aber nicht, also kannst du nur "hintereinander" statt "gleichzeitig" Kollisionen abfragen. Allgemeine Lösung wäre eine Kontrollvariable, siehe dazu meinen Lösungsansatz weiter oben.
Problem bei der Abfragung "hintereinander": Der weitere Programmablauf wird blockiert. Bei Threads könnte das normale Programm weiterlaufen während die Abfrage durchgeführt wird.
Bitte um Entschuldigung falls die Beschreibung etwas umständlich war, bin hunde müde.
Also im Prinzip nochmal kurz gefasst, einfach ne Variable nach dem zusammenstoss setzen, den Ausweichvorgang durchführen, dann wieder losfahren und nen "time" abwärtszählen lassen. Wenn er auf 0 ist, die Kontrollvariable rücksetzen, was einen zusammenstoss nach längerer Zeit bedeuten würde. Falls der Zusammenstoss erfolgt während die Variable noch gesetzt ist, war es ein direkt nach dem ersten Kontakt folgender Zusammenstoss. Und das angesprochene Problem dabei: Wenn der Zusammenstoss genau dann erfolgt, während die Routine wartet (um die Variable runterzuzählen) kann nicht darauf reagiert werden, weil das Programm blockiert.
So, ab ins Bett