Um ein Flanke zu erkenne, muss man den Eingang fortlaufend abfragen, und dabei prüfen, ob sich gegenüber der vorherigen Abfrage was verändert hat.

funktioniert soweit auch wunderbar, aber ich müsste nun warten bis der eingang wieder auf 1 war um die Funktion nochmals auszuführen...
Du bis schon auf dem richtigen Weg.
Du könntest in einer Variable den eingelesenen Zustand zwischenspeichern, und dann bei der nächsten Abfrage damit vergleichen. Wenn der alte Wert 1 ist und der neu 0, dann hast du gerade ne fallende Flanke erkannt, andersrum ne steigende, wenn sich nichts geändert hat, ist nichts passiert.