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

Frage zu return Kategorie: Programmierung (von Hansi - 22.04.2004 8:40)
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT_V2
Hallo Martin,
ich habe Deine Antwort zum Timer mit Interesse gelesen. Ich brauche für meinen Wintergarten mit
insgesamt 10 Jalousien und Markisen ebenfalls Timer.
Als Anfänger in CC2 verstehe ich 1.) die return Anweisung in der if i==0 Bedingung nicht.Was macht die
da? 2.)wenn die Zeit abgelaufen ist müsste i doch 1 sein oder?
Ich wäre über eine aufklärende Antwort sehr dankbar.
Viele Grü�e
Hansi

> > Hallo Christian,
> >
> > ich löse dein Problem folgenderma�en:
> > ~~~~~~~~~~~~~~~
> > // Routine ktime.c2
> > //-----------------------------------------------------
> >   function diffm(long oldtim, int minutes) returns byte
> > //-----------------------------------------------------
> > // Routine zur Abfrage ob bestimmte Zeit in Minuten schon vergangen ist
> > // result = 0 -> NEIN,  result = 1 -> JA
> >   {
> >   long newdif, deltim;
> >   deltim = minutes;             // gewünschte Zeitdifferenz in m
> >   deltim = deltim * 60000;    // gewünschte Zeitdifferenz in ms
> >   newdif = system.timer() - oldtim;  // aktuelle Zeitdifferenz in ms
> >   if deltim > newdif
> >     return 0;                        // noch nicht vergangen
> >   return 1;
> >   }
> > ~~~~~~~~~~~~~~~
> > ...und der Aufruf dieser Routine läuft so ab:
> > ~~~~~~~~~~~~~~~
> > // Thread Main
> > {
> >   int i;
> >   long timerone;
> > ...
> >   system.TIME time;
> >   system.gettime(time);
> > ...
> >   timerone = system.timer();      // timer starten
> > ...
> >   i = ktime.diffm(timerone, 10);   // schon 10 Minuten seit Start ?
> >     if i == 0
> >       {
> >       (irgendeine Aktion);            // Zeit abgelaufen
> >       return;
> >       }
> > ...
> > }
> > ~~~~~~~~~~~~~~~
> > Den Timer kannst du jederzeit neu starten, auch zwischendurch,
> > natürlich gehts auch mit längeren oder kürzeren Intervallen als zB. Minuten.
> > Ich hab mir Routinen für Sekunden, Minuten, Stunden und Tage geschrieben.
> >
> > Aber pass auf:
> > Wenn du den Timer nicht zurücksetzt, wird er alle 48 Tage von selbst "aktiv",
> > denn nach dieser Zeitspanne hat "system.timer()" einen internen Zähler - �berlauf...
> >


    Antwort schreiben


Antworten:

Re: Frage zu return (von Martin Binder - 23.04.2004 9:59)
    Re: Frage zu return (von Hansi - 23.04.2004 16:13)