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

Re: Zeitschaltuhr mit Serialzeit Kategorie: Programmierung (von nitraM - 8.04.2010 20:08)
Als Antwort auf Re: Zeitschaltuhr mit Serialzeit von ChristianS - 8.04.2010 19:05
Ich nutze:
C164CI-ControllerBoard, eigenes Board, OSOPT V3.0, OSOPT V3.1
> > Hallo Christian
> >
> > wie wäre es so:
> >
> >
> > if tein > taus  // Schaltzeit über 0:00Uhr hinaus
> >  { einschaltzeit = 86400 - tein + taus; // Gesamteinschaltzeit ermitteln
> >    if einschaltzeit >=  min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht
> >     {if time >= tein or time < taus  // prüfen auf Uhrzeit "ein" => wichtig  _oder_ !
> >       { einschalten...
> >       }
> >     }
> >  }
> > else
> >  { einschaltzeit = taus - tein; // Gesamteinschaltzeit ermitteln
> >    if einschaltzeit >=  min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht
> >     {if time >= tein and time < taus  // prüfen auf Uhrzeit "ein" => wichtig _und_ !
> >       { einschalten...
> >       }
> >  }
> >

> >
> > nitraM
>
> Hallo nitraM,
> danke für die Antwort, aber das kann ich so nicht machen. Ich darf nur an einer Stelle einschalten,
> sonst kriege ich das Ausschalten nicht hin. Es gibt da noch einen Taster, der die ganze Automatik bei
> der ersten Betätigung aushebelt, aber nur während der "Zeitschalter-ein"-Phasen. Ansonsten arbeitet
> der Taster wie ein Schalter mit einer auto-aus-Funktion nach zwei Stunden. Die setzt dann das "busy"
> wieder zurück und das Licht geht aus.
>

Hallo Christian,
was meinst du mit "nur an einer Stelle einschalten" ?
Das ist doch nur die Bedingung Zeitschaltuhr!  

 
 
byte Licht_per_zeitschaltuhr_an; // Zwischenspeicher :-)
Licht_per_zeitschaltuhr_an  = 0; // Variable wird immer zu Beginn gelöscht

 if tein > taus  // Schaltzeit über 0:00Uhr hinaus
  { einschaltzeit = 86400 - tein + taus; // Gesamteinschaltzeit ermitteln
    if einschaltzeit >=  min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht
     {if time >= tein or time < taus  // prüfen auf Uhrzeit "ein" => wichtig  _oder_ !
       {Licht_per_zeitschaltuhr_an = 1; // wenn die Bedingung erfüllt => merken!
       }
     }
  }
 else
  { einschaltzeit = taus - tein; // Gesamteinschaltzeit ermitteln
    if einschaltzeit >=  min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht
     {if time >= tein and time < taus  // prüfen auf Uhrzeit "ein" => wichtig _und_ !
       { Licht_per_zeitschaltuhr_an = 1; // wenn die Bedingung erfüllt => merken!
       }
  }

// so jetzt dein Code ...
if( Licht_per_zeitschaltuhr_an == 1 or Schalter(4,1)
  {
   if schalter_busy[4] and Licht_per_zeitschaltuhr_an == 1
    gartenlicht_off=-1;    //Ausschaltzeit löschen
    max7311.set(0,Relais7,1);
   }
 else
  {
   max7311.set(0,Relais7,0);
  }

 


nitraM



    Antwort schreiben


Antworten:

Re: Zeitschaltuhr mit Serialzeit (von ChristianS - 8.04.2010 21:05)