Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Rene, > > zuerst solltest Du Dir ein einheitliches und logisches Einrücken angewöhnen: > Als Bsp.: > <code> > thread xy > { > tuedies(); > loop > { > if irgendetwas > { > tuedies(); > unddas(); > } > else > { > oderdas(); > undjenes(); > } > > if dies and das and solches and > wasanderes and jenes > { > //... > } > } > } > </code> > > Man sollte beim Einrücken immer gleich erkennen, in welcher "Ebene" man ist. > Ansonsten ist es für einem der Helfen will, umso schwerer den Code zu lesen. > > Nun die Anmerkungen zu Deinem Quellcode selbst: > > > > > <code>{ > > byte month, day, hour, min, sec; // Variablen definieren und zuweisen > > byte LED; > > int time; > > int number; > > > > lcdext.init(); > > //stports.setLED(1,-1); <- das sollte eigentlich das LED > > Schalten, wenn die Heizung läuft. > > /*******************************************/ > > /***********Zeitschaltuhr Heizlampe*********/ > > /*******************************************/ > > > > loop > > > > { > > wait min!=system.minute(); // Warten auf neue Minute > > min = system.minute(); // Wenn neue Minute, dann gleichsetzen und abarbeiten > > day = system.dow(); // täglich abarbeiten > </code> > system.dow() ist der Day Of Week, also Wochentag Sonntag bis Samstag (0 bis 6) > <code> > > > > /**************************************/ > > /********* Zeitdefinition *************/ > > /**************************************/ > > > > if time >= 1700 and time <= 0800 // zwischen 17:00 und 08:00 > > and day >= 1 and day <= 31 // und vom 01. bis zum 31. > > and month >= 10 and month <= 3 // und von Monat 10 bis Monat 3 > </code> > Gleich zwei Dinge: > 1. Der Wert eines Tages im Monat kann nicht außerhalb vom 1. bis 3. liegen. > Daher ist diese Abfrage ziemlich nutzlos. > 2. Oben hast Du den Wochentag(dow) der Variable day zugewiesen. > Diese hat nur einen Bereich von 0 bis 6. > Die Parameter für die Monatsabfrage können so auch nicht funktionieren. > Ein Monat, oder allgemeiner, eine Varibale kann nie gleichzeitig einen Wert > größergleich 10 und kleinergleich 3 haben. > Wenn Du nur die Monate 4 bis 9 ausnehmen willst, mußt Du das so machen: > <code>... > and (month >= 10 or month <= 3) // und von Monat 10 bis Monat 3 > </code> > Alternativ mit "nand": > <code>... > and (month < 10 nand month > 3) // und von Monat 10 bis Monat 3 > > > > > ports.set(0,1); // (Pin 41) Einschalten > > else // sonst > > ports.set(0,0); // (Pin 41) Ausschalten > > > > }; > </code> > Ein Semikolon nach geschweiften Klammern ist unnötig. > Ein Semikolon schließt eine Anweisung, einen Aufruf bzw. eine Definition ab. > <code> > > release; > > };</code> > Warum schreibst Du ein "release" hier herein??? > Release gehört zum Capture. (Semaphor) > Dies dient bei der CC2 zur Synchronisieren von Threads bzw. zum (temporören) > Schutz von Ressourcen vor anderen Threads. (Siehe Handbuch Kapitel "Synchronisation") > > MfG André H.