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, > > > also Du überschätzt mich da ganz arg, ich habe erst begonnen > > mich mit der CC2 näher zu Beschäftigen, da bin ich > > sicher noch nicht so weit um mal schnell einen Timer > > zu Programmieren. ;) > > Der Thread ist noch sehr einfach gehalten. :-) > Gut, das Auslagern der Schaltzeiten in ein Konstantenarray war evtl. für den Anfang > etwas gemein. Aber ein einfacher Count-Down-Timer ist nichts schwieriges. > Schau Dir den Quellcode einfach nochmal an und versuche diesen zu verstehen. > > > <code> > const schaltzeiten[]= 073000, 173000, -1; //7:30:00, 17:30:00 > const schaltdauer= 45;// in Sekunden > int sectimer; > > int state;//Variable für Debugging > > thread main > { > long timeserial; // Time-Serial im Format HHNNSS > int i; // Zähler für Schaltzeiten > byte second; > second=system.second(); > loop > { > wait second!=system.second(); //Aus Sekundenwechsel warten > second=system.second(); > //"Zeitstempel" erstellen: > timeserial=cast.intLong(system.hour())*10000 + system.minute()*100 + system.second(); > i=0; // i mit 0 initialisieren > > do > {// Schleife zum Abarbeiten der in schaltzeiten[] definierten Zeitpunkte > if timeserial==schaltzeiten[i] //Schaltzeiten aus Array > {// Wenn der Zeitstempel der Schaltzeit entspricht > sectimer=schaltdauer; //Timer auf Schaltdauer setzen, hier 45sec. > // stports.setRel(2, 1); //Zum Testen im Simulator auskommentiert > state=-1; > } > if schaltzeiten[i]==-1 i=-1; else i=i+1; //Wenn keine weiteren Schaltzeiten, i auf -1 setzen, > //damit die Schleife verlasen wird. > } while i >= 0; //Fußgesteuerte Schleife, wird verlassen, wenn i kleiner 0 > > if sectimer>0 sectimer=sectimer-1; > else > if sectimer==0 > {// Wenn Timer abgelaufen ist, Relais ausschalten > // stports.setRel(2, 0); //Zum Testen im Simulator auskommentiert > state=0; > sectimer=-1; > } > } > } > </code> > > MfG André H.