Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Capture verhalten: Funktionen und Threads Kategorie: Programmierung (von Egbert - 10.03.2026 12:58)
Als Antwort auf Re: Capture verhalten: Funktionen und Threads von Detlef - 6.03.2026 12:48
Ich nutze:
C-Control II Unit, C-Control II Station, CC2-Application-Board, CC2-StarterBoard, OSOPT V3.1
Hallo Detlef,

laut Manual erwartet der capture Befehl eine globale (!)byte Variable.
Du verwendest eine globale int Variable.
Vielleicht ist das ein Grund fĂĽr das Problem.

Leider lässt sich in deinem Beispiel nicht erkennen, wie du die Daten speicherst.
Sind des einzelne Variablen, sind es Arrays, ... lokal oder global
Da gibt es unterschiedliches Verhalten bei der Ă?bergabe an eine Funktion.

Gutes Gelingen
Egbert


>
> Moin Nochmal,
>
> im Prinzip läuft es auf die Frage hinaus:
>
> Kommt der Compiler damit klar, wenn ich den Capture Bereich in eine Funktion ausgliedere
> und diese Funktion in mehreren Threads verwende?
>
> Vielleicht probiere ich einfach mal aus, die Funktionen threadspezifisch mehrfach anzulegen.
>
> Schönes WE,
>
> Detlef
>
> > Nochmal ohne Fehler:
> >
> > Moin Zusammen,
> >  
> >  ich hätte eine Frage um sporadisches Verhalten zu erklären.
> >  
> >  Muss ich die Captures und Releases explizit in die Threads schreiben oder funktioniert es auch
> >  ĂĽber Funktionen?
> >  
> >  Beispiel:
> >  
> >  
> >  
> >  int flag;
> >  
> >  function update(int a)
> >   {
> >   capture flag;
> >   function updatedata(a);
> >   release flag;
> >   }
> >  
> >  thread main()
> >   {
> >   capture flag;
> >   machirgendwasmitdendaten();
> >   release flag;
> >   }
> >  
> >  thread one()
> >   {
> >   update(1);
> >   }
> >  
> >  thread two()
> >   {
> >   update(2);
> >   }
> >  
> >  thread three()
> >   {
> >   update(3);
> >   }
> >  
> >  

> >  
> >  Wenn diese vier Threads laufen, ist dann sichergestellt, das immer nur in einem Thread die Daten
> >  bearbeitet werden?  Oder muss ich die Captures und Releases explizit in den Threads erwähnen?
> >  
> >  Ich habe es so wie oben gezeigt realisisert und kriege sporadisch Fehler, die ich nur damit
> >  begrĂĽnden kann, dass Daten gleichzeitig in zwei threads bearbeitet werden...
> >  
> >  
> >  Beste GrĂĽĂ?e
> >  
> >  Detlef


    Antwort schreiben


Antworten: