Programm stoppt nach einigen Programmdurchläufen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich sage es ja ungerne zum dritten mal, aber .... pigpio. Der Spannungsteiler sollte in dieser Beziehung keinerlei Aenderung bringen, dazu ist der Eingang viel zu hochohmig.

Das Problem liegt wesentlich wahrscheinlicher daran, dass deine wait_for_edges nicht wirklich funktionieren wie gewuenscht. Das Linux-OS des PI garantiert dir nicht, dass sleeps oder eben ein solcher wait (der im Hintergrund einem sleep aehnlich ist) zuverlaessig dann zurueck kehren, wenn du das dir wuenschst. Sondern beliebig viel spaeter. Dadurch verschieben sich natuerlich die Zeitpunkte, und das fuehrt dann zu Fehlmessungen.

Gluecklicherweise gibt es Abhilfe, denn pigpio geht *ganz* anders vor bei der Erfassung von GPIO-Events. Statt sich auf den launischen Scheduler des OS zu verlassen, wird ein DMA-Kanal programmiert, der die GPIOs mit einer entsprechend hohen Abtastrate einfach in den Speicher sampelt. Und aus diesem Buffer generiert pigpio dann auch noch spaeter Ereignisse, wenn dein Code endlich drankommt, mit praezisen Zeitstempeln.

Aber hey, das ist nur meine Standardantwort auf alles - mit Ahnung hat das nix zu tun :roll:
Antworten