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

Re: Init und Send in 1 thread? Kategorie: CAN-Bus (von André H. - 4.04.2008 1:48)
Als Antwort auf Re: Init und Send in 1 thread? von MaWo - 2.03.2008 19:57
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.1
Hallo Markus & Rene,

> Im Prinzip wollte ich es ähnlich machen. Im Main Initialisiere ich alle Unterprogramme wie IO und LCD.
> Dann warte ich bis mein thread INIT incl Can init durchgelaufen ist.

Diese Vorgehensweise sollte eher vermieden werden.
Sinnvoller ist es, den Mainthread "aktiv" am Programm zu beteiligen.
Statt einem Init-Thread solltest Du daraus lieber eine Funktion machen.
Ein extra Init-thread ist Unsinn.
Normalerweise sieht ein Main-Thread so aus:

thread main
{
 //Initialisierungen (z.B. Auruf von Init-Funktionen)
 // ...
 //Starten von anderen Threads
 //etc.
 loop
 {
  // Hauptprogrammschleife
  // ...
 }
}




> Dieser Init setzt die Startparameter
> die vor dem Rest "Main". Wenn die DCF Ok ist werden dann im Main noch ein paar Zeitabhängige threads
> aufgerufen und das Programm läuft. Im laufenden Programm sollen nun an den Stellen ( verschiede threads),
> an denen sich Daten ändern per Can übertragen werden. Dies klappt aber nicht. Nur wenn der Can Init im
> thread der Datenübertragung ist fünktioniert es. Und ich habe keine Erklärung hierfür. Vieleicht jemand anders?

Bei Dir wird ganz einfach der Can-Thread vor dem eigentlichen Init ausgeführt.
Das führt zu den Problemen.
Man sollte Threads immer mit Bedacht einsetzen, und nicht so viele, wie möglich.
Es ist kein Problem die Initialisierung auÃ?erhalb des eigentlichen Kommunikationsthreads
durchzuführen. Aber dann mu� man auch sicherstellen, da� nichts durcheinanderläuft.
Und das geht nur mit obigen Schema.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: