Re: Code verschluckt? Kategorie: Programmierung (von Rene Schulz - 9.01.2012 19:50) | |
Als Antwort auf Re: Code verschluckt? von André H. - 8.01.2012 19:28
| |
> 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. > > > > 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; > } > } > } > > > MfG André H. Hallo André, danke nochmals, ich bin eben dran, das mal versuchen nach zu vollziehen, durch die Erklärungen ist das ziemich gut. Irgend wann muss ichs ja mal "fressen". ;) MfG Rene | |
Antwort schreiben Antworten: |