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

Re: Aktion einmalig jeden Tag Kategorie: Programmierung (von nitraM - 27.10.2009 9:12)
Als Antwort auf Aktion einmalig jeden Tag von ChristianS - 26.10.2009 16:21
Ich nutze:
C164CI-ControllerBoard, eigenes Board, OSOPT V3.0, OSOPT V3.1
> Hallo,
> ich versuche einmal täglich den Sonnenstand zu berechnen. Das soll jede Nacht
> um 03:30 Uhr passieren. Jetzt habe ich das in eine Serialzeit umgerechnet: (12600) und vergleiche
> in einer Schleife die tatsächliche Zeit mit 12600.
>
>
> loop
> {
>  if time_to_serial(system.hour(),system.minute(), system.second())==12600
>   {
>    geo.SaSu(system.year(),system.month(),system.day(),
>             myconst.breitengrad,myconst.laengengrad,0,time);
>    hwcom.print("Sonnenaufgang berechnet:");
>    hwcom.ret();
>   } //überprüfe 03:30 Uhr zwecks Berechnung des Sonneauf-/untergangs
> }

>
> dann berechnet er den Sonnenstand mehr als 15x.Gibt es eine elegantere Lösung? Hat
> jemand eine Idee?
>
> GruÃ?,
> ChristianS


Hallo Christian,
ich würde das in etwa so angehen:


 ...
 byte Tag;
 Tag = 0;
 ...
 
 loop
  {if system.day() != Tag and system.hour() >= 3 and system.minute() >= 30
   {Tag = system.day();                // speichert aktuellen Tag
     ....                                        // berechet deine Zeiten                      
   }
  ....
 }


Bei einem Neustart der Unit musst du allerdings die Berechnung im Programm "manuell" starten...

GruÃ? nitraM


    Antwort schreiben


Antworten:

Re: Aktion einmalig jeden Tag (von nitraM - 27.10.2009 21:24)
    Re: Aktion einmalig jeden Tag (von ChristianS - 28.10.2009 18:06)
        Re: Aktion einmalig jeden Tag (von nitraM - 29.10.2009 6:56)