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

Function oder Thread Kategorie: Programmierung (von wema - 14.06.2005 14:54)
Ich nutze:
C164CI-ControllerBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Fan-Gemeinde,

ich habe ein Softwareproblem (vorerst nur gedanklich):

Ich möchte eine Pumpe für 3 Minuten einschalten und danach gleich wieder aus. Das ganze
läuft in einer Function ab. Nun war mein erster Gedanke, nach dem Einschaltbefehl einen
sleep-Befehl mit dem Wert 180000 zu setzen.

function pumpe ()
{
  rbports.set(0,1);
  sleep 180000;
  rbports.set(0,0);
}


Im Nachhinein habe ich aber Bedenken. Die Funktion wird aus einem Eingangs-Abfrage-Thread
heraus aufgerufen. Und dieser Thread ist sehr zeitkritisch, da immerhin auf ca 25 Eingänge reagiert
werden soll. Daher meine Frage: "Schläft" der Programmablauf beim Befehl "Sleep" wirklich oder
werden die anderen Programmabläufe dadurch behindert? Wäre es besser, für die Pumpensteuerung
einen Thread aufzurufen und in diesem einen Sleep-Befehl einzusetzen? Oder als dritte Alternative
könnte ich ja noch in einer loop-Schleife die Timer-Funktion nutzen in der folgenden Art:

function pumpe()
{
  long timer;
  timer=system.timer();
  rbports.set(0,1);
  loop
  {
    if system.timer()-timer >= 180000    break;
    //  nach 3 Min wird die Schleife und damit die Funktion abgebrochen
  }
}


Zu welcher Alternative könnt Ihr mir raten und mit welchen Gründen???? Für eine Hilfe wäre ich
sehr dankbar.
GruÃ?,
wema


    Antwort schreiben


Antworten:

Re: Function oder Thread (von krassos - 14.06.2005 15:46)