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

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo zusammen, > > für die eigene Haussteuerung mussten, damit die Rolladen bei Abwesenheit auf- und abfahren, die > Zeitpunkte der Morgen- und Abenddämmerung bestimmt werden. > > Angeregt durch das Programm zu Jalusie-Steuerung von Axel Rathey sowie der Formeldarstellung > unter http://lexikon.astronomie.info/zeitgleichung/ habe ich die Funktionen zur Berechnung von > Sonnenauf und -untergang sowie der verschiedenen Dämmerungszeitpunkte in ein Modul zusammen- > gefasst. > > sun.c2 > > Aufruf: sun.rise_set (int day, float breitengrad, float laengengrad) > > day ist eine Zahl von 1 (1.Januar) bis 365 (31.Dezember) - wir als day Null übergeben, so werden > die Werte für den aktuellen Tag berechnet. > > Da in c2 keine komlexen Type als Return-Wert möglich sind, werden die Ergebnisse in sun.rs[] > gespeichert. > > Vielleicht kann es jemand gebrauchen. > > Beste Grüße > Thomas > > Hier ein Testprogramm und nachfolgend das Modul: > <code> > thread main { > float Laenge, Breite; > int Tage; > > // Berechnung fuer heute > Tage = 0; > > // Koordinaten fuer Dortmund > Laenge = 7.45; > Breite = 51.53; > > // Aufruf der Berechnung > sun.rise_set (Tage, Breite, Laenge); > > float auf, ab; > int aufStd, aufMin, abStd, abMin; > int i; > > > // Die Ergebnisse stehen in sun.rs[i] für > // i=sun.tranit = Transit, > // i=civil = bürgerliche Dämmerung > // i=nautical = nautische Dämmerung > // i=astronomical = astronomische Dämmerung > > for i = sun.transit ... sun.astronomical { > auf = sun.rs[i].riseTime; > ab = sun.rs[i].setTime; > aufStd = sun.rs[i].riseHour; > aufMin = sun.rs[i].riseMinute; > abStd = sun.rs[i].setHour; > abMin = sun.rs[i].setMinute; > } > } > </code> > > Hier nur das Modul sun.c2: > <code> > /******************************************************************** > > sun.c2 > > release : 2004/12/15 > author : Thomas Wahle > based on : Axel Rathey, Dr. Roland Brobeck) > requires : math.c2, system.c2, myconst.c2 > version : 0.1 > contents : routine to calculate transit and twilight > > input: day 1 = 01.01 ... 356 = 31.12 > current date is used if day is eq. 0 > latitude (grad) > longitude (grad) > > output: sun.rs[i].riseTime = sunrise as float > sun.rs[i].setTime = sunset as float > sun.rs[i].riseHour = sunrise hour as int > sun.rs[i].riseMinute = sunrise minute as int > sun.rs[i].setHour = sunset hour as int > sun.rs[i].setMinute = sunset minute as int > > where i may be: > sun.transit to get the transit > sun.civil to get the civil twilight > sun.nautical to get the nautical twilight > sun.astronomical to get the astronomical twilight > ********************************************************************/ > > // Constants for transit and twilight definitions > const transit = 0; > const civil = 1; > const nautical = 2; > const astronomical = 3; > const h[] = -0.0145444, // transit > -0.1047197, // civil twilight > -0.2094395, // nautical twilight > -0.3141592; // astronomical twilight > > // Type to return sunset and sunrise > type stimeType { > float riseTime; > int riseHour; > int riseMinute; > float setTime; > int setHour; > int setMinute; > } > > stimeType rs[4]; > > function rise_set (int day, float latitude, float longitude){ > > if day == 0 { > int mcnt; > for mcnt = 1 ... system.month()-1 > day = day + myconst.DOM[mcnt]; > day = day + system.day()+1; > } > // convert latizude from grad into rad > latitude = latitude * constant.PI/180.0; > float decl, eqTime, deltaTime; > decl = 0.40954*math.sin(0.0172*(day-79.35)); > eqTime = -0.1752*math.sin(0.033430*day+0.5474)-0.1340*math.sin(0.018234*day-0.1939); > > int time2utc; > if system.dst() == 0 > time2utc = 1; > else > time2utc = 2; > > int i; > for i = transit ... astronomical { > deltaTime = 12*math.acos((math.sin(h[i])-math.sin(latitude)*math.sin(decl))/(math.cos(latitude) > *math.cos(decl)))/constant.PI; > rs[i].riseTime = 12 - deltaTime - eqTime - longitude /15 + time2utc; > rs[i].setTime = 12 + deltaTime - eqTime - longitude /15 + time2utc; > rs[i].riseHour = rs[i].riseTime; > rs[i].riseMinute = (rs[i].riseTime-rs[i].riseHour)*60; > rs[i].setHour = rs[i].setTime; > rs[i].setMinute = (rs[i].setTime-rs[i].setHour)*60; > } > } > </code>
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB