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 Jörg Hansen - 27.10.2009 20:58)
Als Antwort auf Re: Aktion einmalig jeden Tag von ChristianS - 26.10.2009 22:09
Ich nutze:
C-Control II Unit, eigenes Board, OSOPT V3.1
Hallo zusammen,

warum so kompliziert mit Timern? Ich frage einfach ab, ob sich der Wochentag geändert hat.
Mache die Berechnung um 4 Uhr, da dann die SZ/WZ Umstellung gelaufen ist und vor 4 Uhr die
Sonne eh nie aufgeht.

1) Beim Start das Mainthreads einmal aufrufen (Systemneustart):

  SASU();
  SASUneu = system.day();


2) Abfrage auf neuen Tag und 4 Uhr z.B. im loop des Mainthreads:

if system.day()!= SASUneu and (system.hour() == 4)// Neuer Tag und nach MESZ Umstellungszeit
{
  sleep 500;
  SASU();
  SASUneu = system.day();
 };



Funktion zur Berechnung und Terminalsausgabe:

//------------------------------------------------------------------------------
function SASU () //Berechnung Sonnenauf- untergangszeiten, feste Geodaten
//------------------------------------------------------------------------------
{
   int time[2];
   string s;
   geo.SaSu(system.year(),system.month(),system.day(),50.71,6.2,0,time);
   SA=geo.MinuteSerial_to_TimeHHNN(time[0]);
   SU=geo.MinuteSerial_to_TimeHHNN(time[1]);
    s = "Sonnenaufgang: ";
    str.putint(s,SA);
    hwcom.send(s,23);
    hwcom.ret();
    wait hwcom.ready();
    s = "Sonnenuntergang: ";
    str.putint(s,SU);
    hwcom.send(s,25);
    hwcom.ret();
    wait hwcom.ready();
}


P.S. für SASUneu reicht ein integer vollkommen aus.
Vielleicht kanns ja jemand brauchen :-)

Viele Grü�e aus Aachen
Jörg Hansen


    Antwort schreiben


Antworten:

Re: Aktion einmalig jeden Tag (von ChristianS - 28.10.2009 18:10)
    Re: Aktion einmalig jeden Tag (von ChristianS - 28.10.2009 20:03)
        Re: Aktion einmalig jeden Tag (von Jörg Hansen - 29.10.2009 22:33)
            Re: Aktion einmalig jeden Tag (von ChristianS - 30.10.2009 12:07)