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, > > > Kann es sein das der Code "verschluckt" wird? > > Nein. > > > Ich meine man kennt ja diverse komische Bugs etc., nicht > > unbedingt vor der CC2 aber wie gesagt, nichts scheint unmöglich. > > Derzeit sind keine Bugs beim aktuellen OS bekannt. > > > 2 Tage lief die Anlage mit dem Code und dann begann der Murks > > ohne das am Code etwas geändert wurde. > > Daß die Routine schonmal fehlerfrei lief bezweifle ich: > <code> > > wait sec!=system.second(); // Warten auf neue Sekunde > > min =system.minute(); // Wenn neue Minute, dann gleichsetzen und abarbeiten > </code> > Was fällt Dir hier auf? > Du wartest auf einen Sekundenwechsel. > die Variable sec wird aber nirgends gesetzt. > Dann setzt Du die Variable mit mit der aktuellen Minute. > Diese Variable wird aber nirgendwo ausgewertet. > > Und ich hatte es schonmal erwähnt: Bitte auf einheitliches Einrrücken achten. > > <code> > > /**************************************************************/ > > /******** Zeitdefinition Stunden Minuten Sekunden *************/ > > /*** EIN 07:30:00 AUS 07:30:45 EIN 17:30:00 AUS 17:30:45 ******/ > > /**************************************************************/ > > > > { > > if system.hour()==07 and system.minute()==30 // bei 7.30 Uhr > > stports.setRel(2,1); // schalte ein > > sleep 30000; sleep 15000; // warte 45 sec > > stports.setRel(2,0); // schalte aus > > } > > { > > if system.hour()==17 and system.minute()==30 // bei 17.30 Uhr > > stports.setRel(2,1); // schalte ein > > sleep 30000; sleep 15000; // warte 45 sec > > stports.setRel(2,0); // schalte aus > > } > > } > > }</code> > > Hier mit sleep zu arbeiten, kann ungünstig sein. Besonders, wenn der Thread > später einmal mehr können soll. > Besser wäre es, für die Laufzeiten einen Count-Down-Timer zu programmieren: > <code> > const schaltzeiten[]= 073000, 173000, -1; //7:30:00, 17:30:00 > const schaltdauer= 45;// in Sekunden > int sectimer; > thread xy > { > long timeserial; > int i; > byte second; > second=system.second(); > loop > { > wait second!=system.second(); > second=system.second(); > timeserial=cast.intLong(system.hour())*10000 + system.minute()*100 + system.second(); > i=0; > do > { > if timeserial==schaltzeiten[i] > { > sectimer=schaltdauer; > stports.setRel(2, 1); > } > if timeserial==-1 i=-1; else i=i+1; > } while i >= 0; > if sectimer>0 sectimer=sectimer-1; > else > if sectimer==0 > { > stports.setRel(2, 0); > sectimer=-1; > } > } > } > </code> > > Statt einem Timer könnte man natürlich auch Ausschaltzeiten definieren. > > > MfG André H.