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 - 9.04.2010 11:33)
Als Antwort auf Re: Zeitschaltuhr mit Serialzeit von ChristianS - 9.04.2010 10:25
Ich nutze:
C164CI-ControllerBoard, eigenes Board, OSOPT V3.0, OSOPT V3.1
> @nitraM
> ich habe jetzt mal DeinenCode eingebaut. Das funktioniert auch supergut, allerdings hat
> die Sache doch noch einen Haken:
> Die Einschaltzeit des Zeitschalters wird duch den Sonnenuntergang +offset bestimmt. (der offset ist
> notwendig, da es bei SU teilweise noch zu hell ist, der Effekt ist zur Winterzeit anders, als zur
> Sommerzeit, deshalb benutze ich zwei verschiedene Offsets).
> Wertags wird gegen 21:00Uhr die Beleuchtung abgeschaltet. Jetzt wird es aber irgendwann so sein,
> dass der SU+Offset nach 21:00Uhr liegt. Dann funktioniert meine Routine nicht mehr, da dann der
> Abschnitt.
>
> if gartenlicht_on > gartenlicht_off // Schaltzeit über 0:00Uhr hinaus

> greift. Der darf allerdings nur kommen, wenn nach 0:00Uhr abgeschaltet wird und das ist an speziellen
> Tagen der Fall. Ich nehme man an, das ich komplett umdenken muss und mir eine eigene Uhr baue,
> die nicht um 0:00Uhr mit der Serialzeit 0 beginnt, sondern morgens um 04:00Uhr, dann habe ich das
> Problem nicht. Und Ausschaltzeiten nach 03:00Uhr gibt es auch nicht. Das ist aber auch wieder von hinten
> durch die Brust...

mach es dir doch nicht so schwer , füge doch die bedingung einfach hinzu...

    .... schnipp........

 
 function Gartenlicht ()
 {
  byte Licht_per_zeitschaltuhr_an; // Zwischenspeicher
  byte Licht_ein;
   Licht_per_zeitschaltuhr_an  = 0; // Variable wird immer zu Beginn gelöscht
   Licht_ein=0;
  if gartenlicht_on > gartenlicht_off // Schaltzeit über 0:00Uhr hinaus
   {
    gartenlicht_duration = 86400 - gartenlicht_on + gartenlicht_off; // Gesamteinschaltzeit ermitteln

// Bedingung einfach erweitern...
     if gartenlicht_duration >=  gartenlicht_offset and gartenlicht_off < 4:00 uhr // nur weiter prüfen wenn min. Einschaltzeit erreicht
//
      {
        if timeserial >= gartenlicht_on or timeserial < gartenlicht_off  // prüfen auf Uhrzeit "ein" => wichtig  _oder_ !
        {
         Licht_per_zeitschaltuhr_an = 1; // wenn die Bedingung erfüllt => merken!
        }


  ....schnapp.......

nitraM


    Antwort schreiben


Antworten: