Page 1 of 1

Python-Code wird nicht durchlaufen bei Start via bash

Posted: 26 Sep 2023, 08:13
by maschbauerkl
Ich habe eine Frage hinsichtlich eines sehr seltsamen Verhaltens meines Revolution Pis. Und zwar folgender sehr einfacher Software-Code:
Ein Schrittmotor soll eine bestimmte Zeit lang laufen, bis er eine definierte Position erreicht hat, anschließend abschalten. Das ganze via Python, um als Teil eines größeren Projekts zu funktionieren.
Folgende Zeilen Code sind die entscheidenden:

Code: Select all

while time.time() < t_end:
     rpi.io.PWM_1.value = 50
     rpi.io.O_2.value = 1
else:
    rpi.io.PWM_1.value = 0
Das Verrückte ist, starte ich den Code aus VS Code heraus mit dem Debugger funktioniert alles prima. Starte ich manuell via Konsole mit "python3 function.py", dann stoppt der Motor nicht, obwohl die letzte Codezeile durchlaufen wird, denn eine print-Anweisung, die ich testweise mal reingesetzt hatte, die wird angezeigt.

Hat jemand von euch schonmal ein solches Verhalten gesehen? Bug oder Feature? :D

Re: Python-Code wird nicht durchlaufen bei Start via bash

Posted: 26 Sep 2023, 08:26
by RevPiModIO
Hi, ich kenne zwar nicht den ganzen Code von dir, aber ich könnte mir vorstellen, dass du beim RevPiModIO autorefresh=True verwendest. Wenn dies so ist, dann MUSST du vor Programmende ein [name_von_modio_instanz].exit() aufrufen. Das stellt sicher, dass gesetzte Ausgänge noch einmal sicher geschrieben werden.

Wenn du mit dem Debugger arbeitest, dann läuft das alles so "langsam", dass er es noch schafft die Ausgänge in das Prozessabbild zu schreiben.

Gruß
Sven