Seite 1 von 1

Prinzip "Thread"

Verfasst: 27 Feb 2025, 14:47
von PhilippS
Liebe Community,

es geht um meine ersten Schritte mit dem „thread“-Befehl aus der RoboCode-Programmierung. Ich bin Neuling bei Fischertechnik Robotics, verstehe aber, daß mit einem Thread die Abarbeitung von Unterprogramme parallel stattfinden kann.

Dank des Beispielprogramms ist von dem Verständnis leider aber nicht mehr viel übrig. Kurz zusammengefasst: es werden zwar die beiden Unterprogramme parallel ausgeführt (so soll es sein), danach wird eines der Unterprogramme („Rote LED“) aber noch einmal ausgeführt (das soll nicht sein).

Ausführlicher: zwei LEDs („Rot“ und „Grün“) sollen 5x parallel blinken. Dazu gibt es zwei Unterprogramme (für jede LED eins). Das Blinken ist eine Abfolge von An- und Ausschalten einer jeden LED.
Kann mir jemand aus der Community bei meinem grundsätzlichen Verständnis zum Thema „thread“ helfen?

Vielen Dank im Voraus!
Philipp

Re: Prinzip "Thread"

Verfasst: 27 Feb 2025, 16:37
von fishfriend
Hallo...
Ich hab es nicht 100% durchgedacht, aber das Hauptprogramm hat eine Dauerschleife, wo es immer und immer wieder aufgerufen wird.
Mach mal die Dauerschleife unter Lampe rot.
Mit freundlichen Grüßen
Holger

Re: Prinzip "Thread"

Verfasst: 27 Feb 2025, 17:14
von nobi
Hallo Philipp,

für mein Verständnis könnte es daran liegen, dass die erneute Ausführung von "LED rot" innerhalb der Dauerschleife 2x aufgerufen wird. 1x per Thread und dann nochmals explizit als Funktion.
Es käme auf den Versuch an die Funktion "Lampe rot" zu entfernen, vielleicht führt dieser Weg zum gewünschten Ergebnis.
Drücke die Daumen!!

Viele Grüße
Norbert

Re: Prinzip "Thread"

Verfasst: 28 Feb 2025, 10:54
von PhilippS
Dank Euch beiden!

Ich habe den Baustein "Lampe rot" aus dem Hauptprogramm entfernt und nun leuchten beide Lampen so wie gedacht. Ich denke, dass ich mit Euren Kommentaren das Thema "thread" nun verstehe. :-)

Viele Grüße

Philipp

Re: Prinzip "Thread"

Verfasst: 28 Feb 2025, 17:28
von nobi
Hallo Philipp,

in der Tat, es ist nicht immer ganz einfach mit RBC zu arbeiten. Oftmals setzt man etwas voraus, glaubt es funktioniert alles und dann, ja dann beginnt das grübeln.
Um so mehr freut es mich zu hören/lesen, dass der Tipp erfolgreich war.

Ein schönes Wochenende und weiterhin viele spannende Momente mit RBC.
Norbert

Re: Prinzip "Thread"

Verfasst: 28 Feb 2025, 20:24
von vleeuwen

Re: Prinzip "Thread"

Verfasst: 28 Feb 2025, 22:26
von Karl
Hallo,
betreffend dem korrigiertem RP-Coding Programm von PhilippS ergibt sich meinerseits die Frage:
"Was passiert wenn ich z.B. "Grün" auf 8 Wiederholungen setze und "Rot" mit 5 Wiederholungen beibehalte"?
Wird "Rot" dann automatisch übersprungen und "Grün" anschließend dreimal allein ausgeführt ?

Re: Prinzip "Thread"

Verfasst: 28 Feb 2025, 22:26
von Karl
Hallo,
betreffend dem korrigiertem RP-Coding Programm von PhilippS ergibt sich meinerseits die Frage:
"Was passiert wenn ich z.B. "Grün" auf 8 Wiederholungen setze und "Rot" mit 5 Wiederholungen beibehalte"?
Wird "Rot" dann automatisch übersprungen und "Grün" anschließend dreimal allein ausgeführt ?

Re: Prinzip "Thread"

Verfasst: 14 Mär 2025, 23:00
von MagZa
PhilippS hat geschrieben:
27 Feb 2025, 14:47
Liebe Community,

es geht um meine ersten Schritte mit dem „thread“-Befehl aus der RoboCode-Programmierung. Ich bin Neuling bei Fischertechnik Robotics, verstehe aber, daß mit einem Thread die Abarbeitung von Unterprogramme parallel stattfinden kann.

Dank des Beispielprogramms ist von dem Verständnis leider aber nicht mehr viel übrig. Kurz zusammengefasst: es werden zwar die beiden Unterprogramme parallel ausgeführt (so soll es sein), danach wird eines der Unterprogramme („Rote LED“) aber noch einmal ausgeführt (das soll nicht sein).

Ausführlicher: zwei LEDs („Rot“ und „Grün“) sollen 5x parallel blinken. Dazu gibt es zwei Unterprogramme (für jede LED eins). Das Blinken ist eine Abfolge von An- und Ausschalten einer jeden LED.
Kann mir jemand aus der Community bei meinem grundsätzlichen Verständnis zum Thema „thread“ helfen?

Vielen Dank im Voraus!
Philipp

Es klingt so, als ob der rote LED-Thread nicht richtig gestoppt wird. Achte darauf, dass der Thread nach dem Blinken korrekt beendet wird, damit er nicht nochmal startet.

Hoffe, das hilft