Python-Code wird nicht durchlaufen bei Start via bash

Rund um die Software von Revolution Pi
Post Reply
maschbauerkl
Posts: 3
Joined: 15 Sep 2023, 11:47
Answers: 0

Python-Code wird nicht durchlaufen bei Start via bash

Post 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
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Answers: 0
Contact:

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

Post 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
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
Post Reply