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

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: