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

Re: Thread's Starten Kategorie: Programmierung (von Jörg Hansen - 26.11.2011 18:06)
Als Antwort auf Thread's Starten von Rene Schulz - 26.11.2011 14:45
Ich nutze:
C-Control II Unit, OSOPT V3.1
Hallo Rene,

einfach aus dem Thread Main heraus mit "run threadname;" starten:

-Globale Variablen definieren (und initialisieren)
thread main
- diverse HW initialisieren
- weitere threads starten
- "loop" im main tread für alles was der tread im loop so abarbeiten soll
   (bei mir nur "rudimentäre Grundfunktionen")

Beispielcode auf meiner Haussteuerung:


//------------
  thread main
//------------

{
//lokale Variablen
  string s;
  int secold;
  int a;
// Port Nibble auf Ausgang setzen
ports.setn(3,0b1111); // Ausgang für LEDs dcferr 12, wechselblinkende LED 13+14
// hwcom initialiseren und auf 19200 Baud einstellen
  hwcom.init ();
  hwcom.setspeed (hwcom.SPEED_19200);
// PCF 8574 zurücksetzen und vorhandene Bausteine ausgeben
   a=pcf.init();
    s= "PCF auf:";
    str.putmask(s,(a shr 8),'1','0');
    str.putmask(s,a,'1','0');
        hwcom.send(s,25);
        hwcom.ret();
        wait hwcom.ready();
// DS 2482-800 initialisieren
    if ds2482800.init(0)
    {
    s = "8Kanal 1-Wire Master gefunden";
    hwcom.send(s,30);
    hwcom.ret();
    }
    else
    {
    s = "8Kanal 1-Wire Master fehlt";
    hwcom.send(s,26);
    hwcom.ret();
    };
// RTC initialisieren
    if pcf8583.init(1,1,1,0,0) // Init mit autosync PCF auf DCF
    {
    s= "RTC gefunden";
        hwcom.send(s,12);
        hwcom.ret();
        wait hwcom.ready();
    s= "Stellen der CC2 Uhr o.k.";
        hwcom.send(s,24);
        hwcom.ret();
        wait hwcom.ready();
        printtime();
        hwcom.ret();
     }
    else
        {
        s= "RTC nicht gefunden !!!";
        hwcom.send(s,22);
        hwcom.ret();
        wait hwcom.ready();
        printtime();
        hwcom.ret();
        };

{
// Thread Rollladen starten
run Rollladen;
// Tread Terminal starten
run terminal;
// Thread Lüftung starten
run lueftung;
}
loop
{
if secold != system.second(); // jede Sekunde 1 mal abarbeiten
{
secold = system.second();
if secold %2 // Programmlaufanzeige (2 im Sekundentakt wechselnd blinkende LEDs)
{
 ports.set(14,0);
 ports.set(13,1);
 }
else
 {
 ports.set(14,1);
 ports.set(13,0);
 };
 if system.dcferr() ports.set(12,0); // Anzeige ob DCF77 Empfang (rote LED aus wenn o.k.)
 else ports.set(12,1);
  sleep 800;
  };
}
}


    Antwort schreiben


Antworten:

Re: Thread's Starten (von Rene Schulz - 26.11.2011 19:52)
    Re: Thread's Starten (von Alfred - 26.11.2011 22:02)
        Re: Thread's Starten (von Rene Schulz - 26.11.2011 23:25)
            Re: Thread's Starten (von Alfred - 27.11.2011 12:57)
            Re: Thread's Starten (von Jörg Hansen - 27.11.2011 10:50)
                Re: Thread's Starten (von Rene Schulz - 1.12.2011 20:36)
                    Re: Thread's Starten (von Karl - 4.12.2011 19:59)
                       Re: Thread's Starten (von Rene Schulz - 18.12.2011 13:55)
                          Re: Thread's Starten (von Rene Schulz - 21.12.2011 20:52)