Prinzipiell hast Du damit zwar recht, allerdings existiert das Verzeichnis /sys/class/gpio/gpio25 tatsächlich nur, während des Programmlaufs. Sobald das Programm beendet ist, gibt es das Verzeichnis nicht mehr. Wenn ich danach das Programm neu starte, wird in Beispielprogramm 1 sowohl das Verzeichnis in Create als auch das Setzen von Direction in "TGpioLinuxPin.SetDirection(AValue: TGpioDirection);" in dem ersten Schleifendurchlauf bereits gefunden (Verzeichnis /sys/class/gpio/gpio25) beziehungsweise ist gesetzt (GPIO.Direction = gdIn).Timm Thaler hat geschrieben:Das scheint Dir so, weil das Programm abstürzt, der GPIO damit nicht mehr disabled und damit noch vom vorherigen Programmlauf enabled ist.
Natürlich ist dies kein strenger Beweis, es könnte bei anderen Pi Modellen oder anderen Konfigurationen anders sein, aber das Hauptproblem bleibt das Setzen des InterruptMode, welches definitiv länger dauert.
Was allerdings noch sein könnte, daß man, wenn man nach Programmende ein anderes Programm startet, welches GPIO-Pin 25 mit einem anderen Wert für GPIO.Direction initialisiert, es tatsächlich in diesem Falle länger dauert; oder wenn Pin 25 generell anderes konfiguriert war. Dies habe ich nicht explizit geprüft.
Insgesamt erscheint es daher tatsächlich sinnvoll, die Abfrage auch in Create und allen Set-Proceduren einzufügen.
An dieser Stelle nochmals danke für die Unterstützung und die Hinweise.