ich habe mich mit dem "simple_multicore_demo2.spin" von Parallax angeschaut und binn dabei auf ein kleines Problem gestoßen.
Code: Alles auswählen
VAR 'Globally accessible variables
long flag <------ verwendet wird long
PUB Go 'First public method in the .spin file starts execution, runs in cog 0
flag := true <-----gesetzt wird aber nur True/False
PUB Parallel_Routine_1 | counter 'Starts the next available cog
repeat while flag
repeat 10
flag := true ''<-- FRAGE WELCHER COG HAT JETZT TRUE
besser hier solte mit der Cogid gearbeitet werden
Code: Alles auswählen
PUB Go 'First public method in the .spin file starts execution, runs in cog 0
flag := $FFFF <---- kein COG gesetzt
PUB Parallel_Routine_1 | counter 'Starts the next available cog
**** Programm ****
:Test
repeat while !flag=cogid <-- hatt Cog freigabe?
if flag==$FFFF <-- nein flag frei ? nein zurück zum Test
flag := cogid <-- ja wenn frei dann setzen
repeat 10 <-- warten und zurück zum Test
**** Programm ****
flag := $FFFF <-- wieder freigeben
**** Programm ****