Manche RTC Module (China DS3231, https://datasheets.maximintegrated.com/en/ds/DS3231.pdf) haben ein 4kB EEPROM mit dabei, das würde locker reichen, um für 365 Tage Stunde (5 bits) und Minute (6 bits) von Sonnenauf- und Untergang abzulegen, um die Berechnung zu sparen. Mit CR2032 und einer Laufzeit von 10 Jahren (?) und einer Ungenauigkeit von 1 min/Jahr wäre das für mich eine gute Lösung. 2x am Tag: - mit Alarmsignal MCU starten, - EEPROM lesen - Alarmzeit in RTC schreiben - Ausgang schalten Tagsüber müsste nur die RTC aus der Batterie laufen, nachts wäre die Schaltung aus dem Stromnetz versorgt. Die Energie zum Einschalten (SSR, einige mA für einige 10 ms) müsste also aus einem Puffer kommen (der den Tag über halten muss). Dann ist evtl. ein Superkondensator besser als die Lithium-Batterie. Oder eine Kombination, da keine Einschränkung der Gangreserve. Die eigentliche Frage ist aber die nach den Tabellendaten. Was gibt es bei der Erstellung dieser Tabelle außer Schaltjahren (https://de.wikipedia.org/wiki/Schaltjahr) noch zu berücksichtigen? Wie erfolgt der Lookup am günstigsten? Der DS3231 berücksichtigt Schaltjahre bis 2100. Allerdings sehe ich nicht, wie man ein Schaltjahr erkennt (Status bit?). Ansonsten sollte es einfach sein, Monat und Tag auf EEPROM Index zu mappen. struct day { uint8_t rise_hour; uint8_t rise_min; uint8_t set_hour; uint8_t set_min; }; // struct day eeprom[366];
Theoretisch würde auch ein Viertel der Daten reichen. Die Daten von 21.12. bis 20.6. spiegeln, und dann erhält man die Daten für 21.6 bis 20.12. Und die Daten 21.12. bis 20.3. sind die gleichen wie von 21.3. bis 20.6. , wenn man die Differenz vom Mittelwert (also 21.3.) betrachtet. Also würden die Daten 21.12 bis 20.3. reichen, der Rest kann einfach berechnet werden.
Idefix schrieb: > um die Berechnung zu sparen. Warum sollte man sich die Berechnung sparen, kein uC zu Hand ? Berechnet passt die Tabelle wenigstens zum eingegebenen Breitengrad. Der uC hat 24 Stunden Zeit, so langsam kann er gar nicht rechnen. Übrigens wird es bei den allermeisten Fällen nichts aus machen, wenn die Uhrzeit nur wôchentlich nachgestellt wird.
Idefix schrieb: > Die eigentliche Frage ist aber die nach den Tabellendaten. > Was gibt es bei der Erstellung dieser Tabelle außer Schaltjahren > (https://de.wikipedia.org/wiki/Schaltjahr) noch zu berücksichtigen? Die Sonnenauf- und -untergangsdaten ändern sich nicht erratisch, d.h. du brauchst nur ein paar Eckdaten und kannst dazwischen interpolieren. Wenn dein Dämmerungsschalter 5 Minuten falsch geht, stört das selbst in den Tropen nicht so wirklich. Für die Sonnenhöhe würde das einen Fehler von gerade mal gut 1° bedeuten (halbe Daumenbreite am ausgestreckten Arm). Die maximale tägliche Änderung von Aufgangs- bzw. Untergangszeit hast du bei Tag- und Nachtgleiche und die beträgt dort auch nur gut 2 Minuten. Und das Schaltjahr spielt auch keine Nennenswerte Rolle, weil das sowieso nur das langfristige Aufsummieren von Rundungsfehler zwischen Jahreslänge und Rotationsdauer vermeidet. Um das auch zu berücksichtigen, bräuchtest du eine Tabelle über 4 Jahre. Kurz: Auf einen Tag kommt es für einen Dämmerungsschalter nicht an. Was ist denn das für ein Controller, auf dem die Sonnenstandrechnung nicht unterzubringen ist. Sobald eine Float-Bibliothek von vielleicht 1k rein passt, ist es doch einfacher die Rechnung direkt dort durchzuführen.
PittyJ schrieb: > Theoretisch würde auch ein Viertel der Daten reichen. > Die Daten von 21.12. bis 20.6. spiegeln, und dann erhält man die Daten > für 21.6 bis 20.12. Dann verwendest du eine falsche Theorie. Praktisch ist die Erdbahn elliptisch und entsprechend verschieben sich die Zeiten (Stichwort: Zeitgleichung) https://de.wikipedia.org/wiki/Zeitgleichung Das war's dann mit der Symmetrie
Wolfgang schrieb: > Das war's dann mit der Symmetrie Allerdings ist das auch ziemlich unwichtig, denn die Astronomie ignoriert im Weiteren völlig, wie hell es denn tatsächlich ist. Es kann durchaus sein dass es heute dank stammer Bewölkung abends um 6 schon richtig dunkel, es aber tags drauf eine halbe Stunde später bei einem schönen Sonnenuntergang noch ziemlich hell ist. Einen Dämmerungsschalter würde ich deshalb nur ganz grob nach der Zeit und in der Summe vorrangig nach der tatsächlichen Helligkeit steuern.
Lothar M. schrieb: > Allerdings ist das auch ziemlich unwichtig, denn die Astronomie > ignoriert im Weiteren völlig, wie hell es denn tatsächlich ist. Das war aber nicht die Frage des TO. Sonst könnte er einfach einen Helligkeitssensor zur Steuerung verwenden.
Idefix schrieb: > Was gibt es bei der Erstellung dieser Tabelle außer Schaltjahren > (https://de.wikipedia.org/wiki/Schaltjahr) noch zu berücksichtigen? Der Ort, für den diese Tabelle gelten soll. Sonnenauf- und untergänge sind ortsabhängig.
Harald W. schrieb: > Der Ort, für den diese Tabelle gelten soll. Sonnenauf- und > untergänge sind ortsabhängig. Aach - das ändert aber nichts am Prinzip
Wolfgang schrieb: >> Der Ort, für den diese Tabelle gelten soll. Sonnenauf- und >> untergänge sind ortsabhängig. > > Aach - das ändert aber nichts am Prinzip Das heisst, man muss die ortsabhängigen Korrekturen zusätzlich selbst berechnen?
Habe nur 2k Flash, das wird eher nichts mit float. Eine Integer-Berechnung habe ich noch nicht gesehen. Die beiden C Funktionen, die ich gefunden habe, liefern abweichende Ergebnisse. Dann gibt's noch einige CPP Klassen, die ich erst umbauen müsste... Hardware-Upgrade möchte ich auch vermeiden. RTC samt Eeprom ist bezahlt, da könnte ich ihn auch nutzen.. Die 17 min der Zeitgleichung sind mir egal, sonst ist vielleicht noch Platz für 4 Jahre Offset-Daten, oder eine platzsparende Näherung. Die Witterungseinflüsse nehme ich in Kauf, man kann ja ne halbe Stunde auf der sicheren Seite schalten. Dafür hat man keine Sorgen mit Fremdlicht, Schmutz, Flora & Fauna, Alterung & Korrosion.
Harald W. schrieb: > Das heisst, man muss die ortsabhängigen Korrekturen zusätzlich > selbst berechnen? Wenn die Tabelle für den Ort korrekt aufgestellt wurde, muss nichts zusätzlich berechnet werden. Oder muss jetzt auch noch erwähnt werden, dass die Erde keine Scheibe ist? ;-)
Ortsabhängigkeit ist bekannt, danke. Es ist ein ortsfestes Unikat, daher kein Problem.
Schau mal nach wie Tasmota das macht. Das brauch ich um meine inverter ein/auszuschalten.
Wolfgang schrieb: > Das war aber nicht die Frage des TO. Ich wollte es nur erwähnt haben, weil schon so einige TO mit ihrem Lösungansatz nicht auf dem Weg zum Ziel waren. Und er redet eben von "tags" und "nachts" und von einem "Dämmerungsschalter". Das hat für mich eindeutig mehr mit realer Helligkeit als mit einer berechneten Sonnenkurve zu tun. Idefix schrieb: > Allerdings sehe ich nicht, wie man ein Schaltjahr erkennt (Status bit?). Welchen Fehler machst du, wenn du einfach immer von einem normalen Nichtschaltjahr ausgehst? Das geht dann in 3 von 4 Jahren gut. Und im verbleibenden Schaltjahr hast du nicht viel mehr Abweichung, als deine Tabellenauflösung im Minutenbereich hergibt.
Idefix schrieb: > Die 17 min der Zeitgleichung sind mir egal, sonst ist vielleicht noch > Platz für 4 Jahre Offset-Daten, oder eine platzsparende Näherung. Die Zeitgleichung macht dir die einfache, von PittyJ angeführte Symmetrie kaputt, weil das Perihel der Erde etwa am 4 Januar liegt. Du kannst beide Komponenten getrennt betrachten und dann aufsummieren. Das ist kein Grund, die max. 17 min der Zeitgleichung zu vernachlässigen. Die 4 Jahre vom Schaltjahreszyklus sind eher zu verschmerzen, weil das nur einen Fehler von 2 min erzeugen würde.
Lothar M. schrieb: > Welchen Fehler machst du, wenn du einfach immer von einem normalen > Nichtschaltjahr ausgehst? Schrieb ich bereits: Wolfgang schrieb: > Die maximale tägliche Änderung ...
Wolfgang schrieb: > Und das Schaltjahr spielt auch keine Nennenswerte Rolle, weil das > sowieso nur das langfristige Aufsummieren von Rundungsfehler zwischen > Jahreslänge und Rotationsdauer vermeidet. Um das auch zu > berücksichtigen, bräuchtest du eine Tabelle über 4 Jahre. Ok, wenn es in 20 Jahren 5 Tage falsch liegt und dann 10 min zusätzliche Abweichung entstehen, wäre das tatsächlich kein Problem. Also bleibt es bei einer Tabelle mit 365 Tagen und der 29.2. wird wie der 28.2. behandelt.
@wolfgang Wie kann ich denn die Zeitgleichung für die nächsten zb 20 Jahre mit dem verbleibenden Tabellenplatz berücksichtigen? 1464 Bytes für die Zeiten eines Jahres und ebensoviel für vier Jahre Zeitgleichung. Dann brauche ich zum Aufstellen der Tabelle noch eine Funktion, die die Zeitgleichung nicht berücksichtigt, und eine, die nur die Zeitgleichung für vier Jahre ausgibt. Oder vier Jahre berechnen, und die Zeitgleichung herausholen... Evtl. astropy.
Idefix schrieb: > Wie kann ich denn die Zeitgleichung für die nächsten zb 20 Jahre mit dem > verbleibenden Tabellenplatz berücksichtigen? Das Jahr hat eine Länge von etwa 365.2422 Tagen, die Erdrotation bezogen auf den Sonnenstand dauert 24h. Nach 1461 Tagen (eigentlich 1460d 23h 15m) wiederholt sich daher Datum und Uhrzeit des Frühlingsanfangs als Bezugspunkt halbwegs genau. Darum die 4-Jahres Regelung für die Schaltjahre mit den Ausnahmenregeln für die vollen Jahrhunderte. Das hat nichts mit der Zeitgleichung zu tun, die die Verschiebung des Mittagszeitpunktes (=Sonne steht am höchsten) durch Neigung der Erdachse und elliptische Erdumlaufbahn berücksichtigt. Wenn du deine Tabelle auf 366 Tage auslegst und ggf. den letzten Tag weg lässt, hast du halt den Fehler von max gut 2min, was für einen Dämmerungsschalter zu verschmerzen ist ;-)
Ist die Zeitgleichung einmal für einen Ort ausgerechnet, (zur Fehlerminimierung für 2022, also genau zwischen zwei Schaltjahren), sieht man, dass die maximale Änderung von Tag zu Tag < 30 Sekunden beträgt. Liegt man also im Schaltjahr einen Tag (eigentlich nur +/- 1/2 Tag) daneben ist der Fehler deutlich unter 30 Sekunden. Der DS3231 mit 2 ppm Genauigkeit bei 0...40° C darf nach einem Jahr 1 Minute daneben liegen. Die "Leap-Year Compensation Valid Up to 2100" ist übrigens ein Lacher, erst ab 2100 kommt die 100/400-Jahr-Regel zum Zuge, die im Jahr 2000 zu Verwirrung führte.
Kurt schrieb: > Ist die Zeitgleichung einmal für einen Ort ausgerechnet Die hat nichts mit dem Ort zu tun.
Wolfgang schrieb: > Die hat nichts mit dem Ort zu tun. Doch natürlich, denk einfach an Nordpol oder Äquator.
Wendels B. schrieb: > Doch natürlich, denk einfach an Nordpol oder Äquator. Unsinn. Die Zeitgleichung beschreibt die Abweichung der mittleren Ortszeit von der wahren Ortszeit.
Hallo Idefix, anbei ein Beispiel, wie Du Deine Tabelle realisieren könntest. Im folgenden findest Du für das Schaltjahr 2024 für jeden Tag alle Sonnenaufgangszeiten für Hannover in Deutschland. Dahinter befindet sich die tägliche Änderung dieser Zeit in Sekunden. Dank der zweiten Spalte gilt die Tabelle sowohl für normale Jahre als auch für Schaltjahre. Entscheidend ist, dass Du zu einem gegebenen Datum ermittelst, der wievielte Tag des Jahres dieses Datum entspricht! Beispiel: Der 9.1.2024 ist der neunte Tag im Jahr. Addiere zur Uhrzeit 8:30:08 die Summe aller Offsets in der letzten Spalte vom Index 0 bis zum Index 9. Leider hast Du nicht geschrieben, wieviel Numerik Dir zur Verfügung steht! Der 29.2.2024 erhält dieser Logik nach übrigens die Uhrzeit vom 1.3.2023. Für den Untergang braucht man eigentlich keine zweite Tabelle, schau' Dir die Formeln auf https://www.astronomie.info/zeitgleichung/ an! Es gibt auch noch andere genauere Routinen um den Sonnenaufgang und Untergang zu berechnen. Ich habe die simpelste verwendet. Das Beispiel ist nur eine primitive Variante einer Look-Up-Tabelle. Es sind noch viel ausgefallenere, schlauere und kompaktere Varianten möglich. 01.01.24 0 8:30:08 0 02.01.24 1 8:29:54 -14 03.01.24 2 8:29:37 -17 04.01.24 3 8:29:17 -20 05.01.24 4 8:28:54 -23 06.01.24 5 8:28:28 -26 07.01.24 6 8:27:59 -29 08.01.24 7 8:27:28 -32 09.01.24 8 8:26:53 -34 10.01.24 9 8:26:16 -37 11.01.24 10 8:25:36 -40 12.01.24 11 8:24:53 -43 13.01.24 12 8:24:08 -46 14.01.24 13 8:23:20 -48 15.01.24 14 8:22:29 -51 16.01.24 15 8:21:35 -53 17.01.24 16 8:20:39 -56 18.01.24 17 8:19:41 -59 19.01.24 18 8:18:40 -61 20.01.24 19 8:17:36 -64 21.01.24 20 8:16:30 -66 22.01.24 21 8:15:21 -68 23.01.24 22 8:14:11 -71 24.01.24 23 8:12:58 -73 25.01.24 24 8:11:42 -75 26.01.24 25 8:10:25 -78 27.01.24 26 8:09:05 -80 28.01.24 27 8:07:43 -82 29.01.24 28 8:06:19 -84 30.01.24 29 8:04:52 -86 31.01.24 30 8:03:24 -88 01.02.24 31 8:01:54 -90 02.02.24 32 8:00:22 -92 03.02.24 33 7:58:47 -94 04.02.24 34 7:57:11 -96 05.02.24 35 7:55:34 -98 06.02.24 36 7:53:54 -100 07.02.24 37 7:52:12 -101 08.02.24 38 7:50:29 -103 09.02.24 39 7:48:44 -105 10.02.24 40 7:46:58 -107 11.02.24 41 7:45:10 -108 12.02.24 42 7:43:20 -110 13.02.24 43 7:41:29 -111 14.02.24 44 7:39:36 -113 15.02.24 45 7:37:42 -114 16.02.24 46 7:35:46 -116 17.02.24 47 7:33:49 -117 18.02.24 48 7:31:51 -118 19.02.24 49 7:29:51 -120 20.02.24 50 7:27:51 -121 21.02.24 51 7:25:48 -122 22.02.24 52 7:23:45 -123 23.02.24 53 7:21:41 -124 24.02.24 54 7:19:35 -126 25.02.24 55 7:17:29 -127 26.02.24 56 7:15:21 -128 27.02.24 57 7:13:12 -129 28.02.24 58 7:11:03 -130 29.02.24 59 7:08:52 -131 01.03.24 60 7:06:41 -131 02.03.24 61 7:04:28 -132 03.03.24 62 7:02:15 -133 04.03.24 63 7:00:01 -134 05.03.24 64 6:57:46 -135 06.03.24 65 6:55:31 -135 07.03.24 66 6:53:15 -136 08.03.24 67 6:50:58 -137 09.03.24 68 6:48:41 -137 10.03.24 69 6:46:23 -138 11.03.24 70 6:44:05 -138 12.03.24 71 6:41:46 -139 13.03.24 72 6:39:26 -139 14.03.24 73 6:37:06 -140 15.03.24 74 6:34:46 -140 16.03.24 75 6:32:26 -141 17.03.24 76 6:30:05 -141 18.03.24 77 6:27:44 -141 19.03.24 78 6:25:22 -141 20.03.24 79 6:23:01 -142 21.03.24 80 6:20:39 -142 22.03.24 81 6:18:17 -142 23.03.24 82 6:15:55 -142 24.03.24 83 6:13:33 -142 25.03.24 84 6:11:11 -142 26.03.24 85 6:08:49 -142 27.03.24 86 6:06:27 -142 28.03.24 87 6:04:05 -142 29.03.24 88 6:01:43 -142 30.03.24 89 5:59:21 -142 31.03.24 90 5:57:00 -141 01.04.24 91 5:54:38 -141 02.04.24 92 5:52:17 -141 03.04.24 93 5:49:57 -141 04.04.24 94 5:47:36 -140 05.04.24 95 5:45:16 -140 06.04.24 96 5:42:57 -140 07.04.24 97 5:40:38 -139 08.04.24 98 5:38:19 -139 09.04.24 99 5:36:01 -138 10.04.24 100 5:33:43 -138 11.04.24 101 5:31:26 -137 12.04.24 102 5:29:10 -136 13.04.24 103 5:26:55 -136 14.04.24 104 5:24:40 -135 15.04.24 105 5:22:26 -134 16.04.24 106 5:20:12 -133 17.04.24 107 5:18:00 -132 18.04.24 108 5:15:48 -132 19.04.24 109 5:13:37 -131 20.04.24 110 5:11:28 -130 21.04.24 111 5:09:19 -129 22.04.24 112 5:07:11 -128 23.04.24 113 5:05:05 -127 24.04.24 114 5:02:59 -125 25.04.24 115 5:00:55 -124 26.04.24 116 4:58:52 -123 27.04.24 117 4:56:50 -122 28.04.24 118 4:54:49 -121 29.04.24 119 4:52:50 -119 30.04.24 120 4:50:52 -118 01.05.24 121 4:48:56 -116 02.05.24 122 4:47:01 -115 03.05.24 123 4:45:07 -114 04.05.24 124 4:43:15 -112 05.05.24 125 4:41:25 -110 06.05.24 126 4:39:36 -109 07.05.24 127 4:37:49 -107 08.05.24 128 4:36:04 -105 09.05.24 129 4:34:20 -104 10.05.24 130 4:32:38 -102 11.05.24 131 4:30:59 -100 12.05.24 132 4:29:21 -98 13.05.24 133 4:27:45 -96 14.05.24 134 4:26:11 -94 15.05.24 135 4:24:39 -92 16.05.24 136 4:23:09 -90 17.05.24 137 4:21:42 -88 18.05.24 138 4:20:16 -85 19.05.24 139 4:18:53 -83 20.05.24 140 4:17:32 -81 21.05.24 141 4:16:14 -78 22.05.24 142 4:14:58 -76 23.05.24 143 4:13:44 -74 24.05.24 144 4:12:33 -71 25.05.24 145 4:11:24 -69 26.05.24 146 4:10:18 -66 27.05.24 147 4:09:15 -63 28.05.24 148 4:08:14 -61 29.05.24 149 4:07:16 -58 30.05.24 150 4:06:21 -55 31.05.24 151 4:05:28 -53 01.06.24 152 4:04:38 -50 02.06.24 153 4:03:51 -47 03.06.24 154 4:03:07 -44 04.06.24 155 4:02:26 -41 05.06.24 156 4:01:48 -38 06.06.24 157 4:01:13 -35 07.06.24 158 4:00:41 -32 08.06.24 159 4:00:12 -29 09.06.24 160 3:59:45 -26 10.06.24 161 3:59:22 -23 11.06.24 162 3:59:02 -20 12.06.24 163 3:58:46 -17 13.06.24 164 3:58:32 -14 14.06.24 165 3:58:21 -11 15.06.24 166 3:58:14 -8 16.06.24 167 3:58:09 -4 17.06.24 168 3:58:08 -1 18.06.24 169 3:58:10 2 19.06.24 170 3:58:15 5 20.06.24 171 3:58:23 8 21.06.24 172 3:58:34 11 22.06.24 173 3:58:48 14 23.06.24 174 3:59:05 17 24.06.24 175 3:59:25 20 25.06.24 176 3:59:48 23 26.06.24 177 4:00:14 26 27.06.24 178 4:00:43 29 28.06.24 179 4:01:15 32 29.06.24 180 4:01:50 35 30.06.24 181 4:02:27 37 01.07.24 182 4:03:07 40 02.07.24 183 4:03:50 43 03.07.24 184 4:04:36 45 04.07.24 185 4:05:24 48 05.07.24 186 4:06:14 51 06.07.24 187 4:07:07 53 07.07.24 188 4:08:03 55 08.07.24 189 4:09:00 58 09.07.24 190 4:10:01 60 10.07.24 191 4:11:03 62 11.07.24 192 4:12:07 64 12.07.24 193 4:13:14 67 13.07.24 194 4:14:22 69 14.07.24 195 4:15:33 70 15.07.24 196 4:16:45 72 16.07.24 197 4:17:59 74 17.07.24 198 4:19:15 76 18.07.24 199 4:20:33 78 19.07.24 200 4:21:52 79 20.07.24 201 4:23:13 81 21.07.24 202 4:24:35 82 22.07.24 203 4:25:58 84 23.07.24 204 4:27:23 85 24.07.24 205 4:28:49 86 25.07.24 206 4:30:17 87 26.07.24 207 4:31:45 89 27.07.24 208 4:33:15 90 28.07.24 209 4:34:46 91 29.07.24 210 4:36:17 92 30.07.24 211 4:37:50 93 31.07.24 212 4:39:23 93 01.08.24 213 4:40:57 94 02.08.24 214 4:42:32 95 03.08.24 215 4:44:08 96 04.08.24 216 4:45:44 96 05.08.24 217 4:47:21 97 06.08.24 218 4:48:58 97 07.08.24 219 4:50:36 98 08.08.24 220 4:52:14 98 09.08.24 221 4:53:53 99 10.08.24 222 4:55:32 99 11.08.24 223 4:57:12 99 12.08.24 224 4:58:51 100 13.08.24 225 5:00:31 100 14.08.24 226 5:02:12 100 15.08.24 227 5:03:52 101 16.08.24 228 5:05:33 101 17.08.24 229 5:07:14 101 18.08.24 230 5:08:55 101 19.08.24 231 5:10:36 101 20.08.24 232 5:12:17 101 21.08.24 233 5:13:59 101 22.08.24 234 5:15:40 101 23.08.24 235 5:17:21 101 24.08.24 236 5:19:03 101 25.08.24 237 5:20:44 101 26.08.24 238 5:22:26 101 27.08.24 239 5:24:07 101 28.08.24 240 5:25:49 101 29.08.24 241 5:27:30 101 30.08.24 242 5:29:12 101 31.08.24 243 5:30:53 101 01.09.24 244 5:32:34 101 02.09.24 245 5:34:16 101 03.09.24 246 5:35:57 101 04.09.24 247 5:37:38 101 05.09.24 248 5:39:19 101 06.09.24 249 5:41:01 101 07.09.24 250 5:42:42 101 08.09.24 251 5:44:23 101 09.09.24 252 5:46:04 101 10.09.24 253 5:47:45 101 11.09.24 254 5:49:26 101 12.09.24 255 5:51:07 101 13.09.24 256 5:52:48 101 14.09.24 257 5:54:30 101 15.09.24 258 5:56:11 101 16.09.24 259 5:57:52 101 17.09.24 260 5:59:33 101 18.09.24 261 6:01:15 101 19.09.24 262 6:02:56 101 20.09.24 263 6:04:37 101 21.09.24 264 6:06:19 102 22.09.24 265 6:08:01 102 23.09.24 266 6:09:42 102 24.09.24 267 6:11:24 102 25.09.24 268 6:13:06 102 26.09.24 269 6:14:48 102 27.09.24 270 6:16:31 102 28.09.24 271 6:18:13 102 29.09.24 272 6:19:56 103 30.09.24 273 6:21:38 103 01.10.24 274 6:23:21 103 02.10.24 275 6:25:05 103 03.10.24 276 6:26:48 103 04.10.24 277 6:28:32 104 05.10.24 278 6:30:15 104 06.10.24 279 6:31:59 104 07.10.24 280 6:33:44 104 08.10.24 281 6:35:28 104 09.10.24 282 6:37:13 105 10.10.24 283 6:38:58 105 11.10.24 284 6:40:43 105 12.10.24 285 6:42:28 105 13.10.24 286 6:44:14 106 14.10.24 287 6:46:00 106 15.10.24 288 6:47:46 106 16.10.24 289 6:49:32 106 17.10.24 290 6:51:18 107 18.10.24 291 6:53:05 107 19.10.24 292 6:54:52 107 20.10.24 293 6:56:39 107 21.10.24 294 6:58:27 107 22.10.24 295 7:00:14 107 23.10.24 296 7:02:02 108 24.10.24 297 7:03:49 108 25.10.24 298 7:05:37 108 26.10.24 299 7:07:25 108 27.10.24 300 7:09:13 108 28.10.24 301 7:11:01 108 29.10.24 302 7:12:49 108 30.10.24 303 7:14:37 108 31.10.24 304 7:16:25 108 01.11.24 305 7:18:14 108 02.11.24 306 7:20:01 108 03.11.24 307 7:21:49 108 04.11.24 308 7:23:37 108 05.11.24 309 7:25:24 107 06.11.24 310 7:27:12 107 07.11.24 311 7:28:59 107 08.11.24 312 7:30:45 107 09.11.24 313 7:32:32 106 10.11.24 314 7:34:18 106 11.11.24 315 7:36:03 105 12.11.24 316 7:37:48 105 13.11.24 317 7:39:33 104 14.11.24 318 7:41:17 104 15.11.24 319 7:43:00 103 16.11.24 320 7:44:42 103 17.11.24 321 7:46:24 102 18.11.24 322 7:48:05 101 19.11.24 323 7:49:45 100 20.11.24 324 7:51:24 99 21.11.24 325 7:53:02 98 22.11.24 326 7:54:39 97 23.11.24 327 7:56:15 96 24.11.24 328 7:57:50 95 25.11.24 329 7:59:24 94 26.11.24 330 8:00:56 92 27.11.24 331 8:02:27 91 28.11.24 332 8:03:56 89 29.11.24 333 8:05:24 88 30.11.24 334 8:06:50 86 01.12.24 335 8:08:15 85 02.12.24 336 8:09:37 83 03.12.24 337 8:10:58 81 04.12.24 338 8:12:18 79 05.12.24 339 8:13:35 77 06.12.24 340 8:14:50 75 07.12.24 341 8:16:04 73 08.12.24 342 8:17:15 71 09.12.24 343 8:18:24 69 10.12.24 344 8:19:30 67 11.12.24 345 8:20:35 64 12.12.24 346 8:21:37 62 13.12.24 347 8:22:37 60 14.12.24 348 8:23:34 57 15.12.24 349 8:24:29 55 16.12.24 350 8:25:21 52 17.12.24 351 8:26:10 50 18.12.24 352 8:26:57 47 19.12.24 353 8:27:41 44 20.12.24 354 8:28:22 41 21.12.24 355 8:29:01 39 22.12.24 356 8:29:37 36 23.12.24 357 8:30:10 33 24.12.24 358 8:30:40 30 25.12.24 359 8:31:07 27 26.12.24 360 8:31:31 24 27.12.24 361 8:31:52 21 28.12.24 362 8:32:11 18 29.12.24 363 8:32:26 15 30.12.24 364 8:32:38 12 31.12.24 365 8:32:47 9
:
Bearbeitet durch User
Wolfgang, du hast schon recht mit der ortsunabhängigen Differenz von mittlerer zu wahrer Ortszeit. Ich habe mich ungenau ausgedrückt: Die Auf- und Untergangszeiten, die man (mit Hilfe der Zeitgleichung) für einen Ort mit Länge, Breite über ein Jahr errechnet hat, kann man getrost jedes Jahr wieder benutzen. Selbst Jean Meeus, anerkannter Experte für genaue astronomische Berechnungen, rät davon ab, Auf- und Untergangszeiten genauer, als auf die Minute anzugeben. - Auch Temperatur und Luftdruck haben darauf Einfluss.
https://www.volker-quaschning.de/datserv/sunpos/index.php spuckt die Zeiten für ein ganzes Jahr aus (Schaltjahren fehlt der 31.12.). Da wird die Zeitgleichung ja wohl schon drin stecken, wie auch bei timeanddate.com etc. Sie ist wohl nur interessant, wenn man selbst rechnen möchte oder eine hohe Genauigkeit braucht. Das versuche ich ja zu vermeiden. Ich sehe in den Daten nächsten 10 Jahren keine nennenswerten (mehrere Minuten) Abweichungen für meine Koordinaten! Den Schalttag werde ich doch nicht ignorieren, stattdessen den 366 Tag. Sonst gibt es einen kleinen Sprung und dann den Rest des Jahres einen kleinen Fehler. Dazu muss stets ermittelt werden, ob es den 29.2. gab (Schaltjahr ist), um den Tag (1-365) anhand des Datums, und damit den Tabellenindex zu ermitteln. Peter, danke, aber da lese ich lieber direkt die Zeit aus, anstatt im Mittel 182 Lesevorgänge (über I2C) und Additionen zu machen. Wie du deine Daten berechnet hast, interessiert mich aber! astropy bestätigt die Zeiten von quaschning eher als die von timeanddate.
Hallo Idefix, Idefix schrieb: > https://www.volker-quaschning.de/datserv/sunpos/index.php spuckt DER Quaschning?! :( > die > Zeiten für ein ganzes Jahr aus (Schaltjahren fehlt der 31.12.). > Da wird die Zeitgleichung ja wohl schon drin stecken, wie auch bei > timeanddate.com etc. > Sie ist wohl nur interessant, wenn man selbst rechnen möchte oder eine > hohe Genauigkeit braucht. Das versuche ich ja zu vermeiden. > Ich sehe in den Daten nächsten 10 Jahren keine nennenswerten (mehrere > Minuten) Abweichungen für meine Koordinaten! > Den Schalttag werde ich doch nicht ignorieren, stattdessen den 366 Tag. > Sonst gibt es einen kleinen Sprung und dann den Rest des Jahres einen > kleinen Fehler. > Dazu muss stets ermittelt werden, ob es den 29.2. gab (Schaltjahr ist), > um den Tag (1-365) anhand des Datums, und damit den Tabellenindex zu > ermitteln. Ja. > Peter, danke, aber da lese ich lieber direkt die Zeit aus, anstatt im > Mittel 182 Lesevorgänge (über I2C) und Additionen zu machen. Das wusste ich nicht - bin µc-inkompetent! > Wie du deine Daten berechnet hast, interessiert mich aber! Du hast die Daten für die einfache, jahresunabhängige Version bekommen, wie Du Sie auf der verlinkten Seite findest mit den Parametern Hannover-Koordinaten und Zeitzone 1. Berechnet habe ich das in Excel. Es gab früher auf der Seite mehr Informationen und die Links funktionierten auch. Anbei findest Du noch ein Bild, wie sich im Jahre 2022 die einfache Berechnung und die genauere Berechnung (früher auf der Webseite zu finden) gegenüber dem Code von Duffett schlägt.
Peter M. schrieb: > Du hast die Daten für die einfache, jahresunabhängige Version bekommen, > wie Du Sie auf der verlinkten Seite findest mit den Parametern > Hannover-Koordinaten und Zeitzone 1. > > Berechnet habe ich das in Excel. > Es gab früher auf der Seite mehr Informationen und die Links > funktionierten auch. > > Anbei findest Du noch ein Bild, wie sich im Jahre 2022 die einfache > Berechnung und die genauere Berechnung (früher auf der Webseite zu > finden) gegenüber dem Code von Duffett schlägt. Ich sehe auf der Seite nichts, d.h. alle "hier"s sind keine Links. Du hast also die Formeln in Excel realisiert? Ein Duffet wird da auch nicht erwähnt. Eine "genauere Berechnung", die es nicht mehr gibt, nützt mir auch nicht wirklich was. Aber eigentlich ist das Thema für mich abgeschlossen - nur Schaltjahre haben einen kleinen Einfluss, ansonsten bleiben die Zeiten jährlich fast auf die Minute gleich. Die Daten kann man sich notfalls von den Online-Anbietern zusammenklauben. Also, vielen Dank für die Hinweise.
Wohl dieser: https://www.cambridge.org/core/books/practical-astronomy-with-your-calculator-or-spreadsheet/
Hier finden sich viele Algorithmen für die Astronomie: Montenbruck Pfleger, Astronomie mit dem Personal Computer, Springer https://docplayer.org/51594777-Montenbruck-pfleger-astronomie-mit-dem-personal-computer.html
Och, die Daten vom Quaschning sind garnicht so schlecht: Außer die nach dem SUNRAE-Verfahren: Fehler bis zu 10 Minuten Die Daten nach DIN 5034 und NREL SOLPOS sind schon besser, aber berücksichtigen nicht so richtig, dass die Lichtbrechung am Horizont zu real beobachtbaren (Ellipsenform der auf-/untergehenden Sonne) Verlagerungen des Zeitpunkts von Auf- und Untergang führt. Fehler bis etwa 3 Minuten. Die Aufgangszeiten von Peter M. (r2d3) sind sehr gut berechnet! Der Algorithmus dahinter ist bestimmt von Jean Meeus inspiriert! Als Referenzjahr sollte man aber zur Fehlerminimierung ein Jahr wie 2018, oder 2022 in der Mitte zwischen 2 Schaltjahren wählen!
Peter M. schrieb: > Das Beispiel ist nur eine primitive Variante einer Look-Up-Tabelle. Es > sind noch viel ausgefallenere, schlauere und kompaktere Varianten > möglich. > 01.01.24 0 8:30:08 0 > 02.01.24 1 8:29:54 -14 > 03.01.24 2 8:29:37 -17 > ... Was bitte soll dieser Zahlensalat hier im Text? Was für Sourcecode gilt, sollte mit ein bisschen Nachdenken auch auf längere Zahlenkolonnen zutreffen. Warum kannst du die Tabelle nicht als Dateianhang beifügen?
Kurt schrieb: > garnicht so schlecht > schon besser > sehr gut Bezogen auf was? Bist du gerade mit GPS und Sextant bei Flaute auf NN auf dem Pazifik und kannst die Berechnung verifizieren (mit welcher Genauigkeit)? Mein Link ist kaputt, der hier geht hoffentlich: https://www.cambridge.org/core/books/practical-astronomy-with-your-calculator-or-spreadsheet/AE9BF845B4C2DDFDA0BDCFF3F51EB10E https://www.phy.cam.ac.uk/directory/duffettsmithp https://en.wikipedia.org/wiki/Jean_Meeus Astronomical Formulae for Calculators (1979), 1st ed, ISBN 0-943396-22-0 PyMeeus is a Python implementation of the astronomical algorithms described in the classical book ‘Astronomical Algorithms, 2nd Edition, Willmann-Bell Inc. (1998)’ by Jean Meeus. https://pymeeus.readthedocs.io/en/latest/ https://pymeeus.readthedocs.io/en/latest/examples/ex-Sun.html Man muss sich schon etwas mit der Materia auskennen, um mit diesen Funktionen den Sonnenaufgang zu berechnen.
Hallo Kurt, Kurt schrieb: > Och, die Daten vom Quaschning sind garnicht so schlecht: > Außer die nach dem SUNRAE-Verfahren: Fehler bis zu 10 Minuten > Die Aufgangszeiten von Peter M. (r2d3) sind sehr gut berechnet! > Der Algorithmus dahinter ist bestimmt von Jean Meeus inspiriert! > Als Referenzjahr sollte man aber zur Fehlerminimierung ein Jahr wie > 2018, oder 2022 in der Mitte zwischen 2 Schaltjahren wählen! Ich kenne den Algorithmus von Jean Meeus nicht. Früher gab es auf der Astronomie-Internetseite noch ein zweites genaueres Verfahren. Leider habe ich mir nicht aufgeschrieben, wieso ich auch den Duffett programmiert hatte. Die Internetseite war früher umfangreicher und vermutlich war der als genaueste Referenz verlinkt. Hier nochmal alle drei Verfahren für Dich auf Basis von 2022 im Vergleich. v2000 ist die noch aufzufindende Methode, v2005 ist die genauere Variante aus dem Jahr 2005 auf dieser Astroseite. Jetzt ist sie verschwunden. Ort Hannover Länge 9,733333333 Breite 52,36666667 Zonenzeit 1 Datum v2000 v2005 Duffett 01.01.22 8:30:01 8:30:01 8:31:03 02.01.22 8:29:52 8:29:52 8:30:54 03.01.22 8:29:38 8:29:38 8:30:42 04.01.22 8:29:22 8:29:22 8:30:26 05.01.22 8:29:02 8:29:02 8:30:07 06.01.22 8:28:39 8:28:39 8:29:44 07.01.22 8:28:12 8:28:12 8:29:18 08.01.22 8:27:42 8:27:42 8:28:48 09.01.22 8:27:08 8:27:08 8:28:16 10.01.22 8:26:32 8:26:32 8:27:40 11.01.22 8:25:52 8:25:52 8:27:00 12.01.22 8:25:09 8:25:09 8:26:18 13.01.22 8:24:23 8:24:23 8:25:32 14.01.22 8:23:33 8:23:33 8:24:43 15.01.22 8:22:41 8:22:41 8:23:52 16.01.22 8:21:46 8:21:46 8:22:57 17.01.22 8:20:48 8:20:48 8:21:59 18.01.22 8:19:46 8:19:46 8:20:59 19.01.22 8:18:43 8:18:43 8:19:55 20.01.22 8:17:36 8:17:36 8:18:49 21.01.22 8:16:26 8:16:26 8:17:40 22.01.22 8:15:14 8:15:14 8:16:29 23.01.22 8:14:00 8:14:00 8:15:14 24.01.22 8:12:43 8:12:43 8:13:58 25.01.22 8:11:23 8:11:23 8:12:39 26.01.22 8:10:01 8:10:01 8:11:17 27.01.22 8:08:36 8:08:36 8:09:53 28.01.22 8:07:10 8:07:10 8:08:27 29.01.22 8:05:41 8:05:41 8:06:59 30.01.22 8:04:10 8:04:10 8:05:28 31.01.22 8:02:36 8:02:36 8:03:56 01.02.22 8:01:01 8:01:01 8:02:21 02.02.22 7:59:24 7:59:24 8:00:44 03.02.22 7:57:44 7:57:44 7:59:05 04.02.22 7:56:03 7:56:03 7:57:25 05.02.22 7:54:20 7:54:20 7:55:42 06.02.22 7:52:35 7:52:35 7:53:58 07.02.22 7:50:49 7:50:49 7:52:12 08.02.22 7:49:00 7:49:00 7:50:24 09.02.22 7:47:10 7:47:10 7:48:35 10.02.22 7:45:19 7:45:19 7:46:44 11.02.22 7:43:26 7:43:26 7:44:51 12.02.22 7:41:31 7:41:31 7:42:57 13.02.22 7:39:35 7:39:35 7:41:01 14.02.22 7:37:38 7:37:38 7:39:05 15.02.22 7:35:40 7:35:40 7:37:06 16.02.22 7:33:40 7:33:40 7:35:07 17.02.22 7:31:38 7:31:38 7:33:06 18.02.22 7:29:36 7:29:36 7:31:04 19.02.22 7:27:32 7:27:32 7:29:01 20.02.22 7:25:28 7:25:28 7:26:57 21.02.22 7:23:22 7:23:22 7:24:51 22.02.22 7:21:15 7:21:15 7:22:45 23.02.22 7:19:08 7:19:08 7:20:38 24.02.22 7:16:59 7:16:59 7:18:30 25.02.22 7:14:49 7:14:49 7:16:20 26.02.22 7:12:39 7:12:39 7:14:10 27.02.22 7:10:27 7:10:27 7:12:00 28.02.22 7:08:15 7:08:15 7:09:48 01.03.22 7:06:02 7:06:02 7:07:35 02.03.22 7:03:49 7:03:49 7:05:22 03.03.22 7:01:35 7:01:35 7:03:08 04.03.22 6:59:20 6:59:20 7:00:54 05.03.22 6:57:04 6:57:04 6:58:39 06.03.22 6:54:48 6:54:48 6:56:23 07.03.22 6:52:31 6:52:31 6:54:07 08.03.22 6:50:14 6:50:14 6:51:50 09.03.22 6:47:57 6:47:57 6:49:33 10.03.22 6:45:39 6:45:39 6:47:15 11.03.22 6:43:20 6:43:20 6:44:57 12.03.22 6:41:01 6:41:01 6:42:39 13.03.22 6:38:42 6:38:42 6:40:20 14.03.22 6:36:22 6:36:22 6:38:00 15.03.22 6:34:03 6:34:03 6:35:41 16.03.22 6:31:42 6:31:42 6:33:21 17.03.22 6:29:22 6:29:22 6:31:01 18.03.22 6:27:02 6:27:02 6:28:41 19.03.22 6:24:41 6:24:41 6:26:21 20.03.22 6:22:20 6:22:20 6:24:00 21.03.22 6:19:59 6:19:59 6:21:39 22.03.22 6:17:38 6:17:38 6:19:19 23.03.22 6:15:17 6:15:17 6:16:58 24.03.22 6:12:56 6:12:56 6:14:37 25.03.22 6:10:35 6:10:35 6:12:17 26.03.22 6:08:15 6:08:15 6:09:56 27.03.22 6:05:54 6:05:54 6:07:35 28.03.22 6:03:33 6:03:33 6:05:15 29.03.22 6:01:12 6:01:12 6:02:54 30.03.22 5:58:52 5:58:52 6:00:34 31.03.22 5:56:32 5:56:32 5:58:14 01.04.22 5:54:12 5:54:12 5:55:55 02.04.22 5:51:52 5:51:52 5:53:35 03.04.22 5:49:33 5:49:33 5:51:16 04.04.22 5:47:13 5:47:13 5:48:57 05.04.22 5:44:55 5:44:55 5:46:38 06.04.22 5:42:36 5:42:36 5:44:20 07.04.22 5:40:18 5:40:18 5:42:02 08.04.22 5:38:01 5:38:01 5:39:45 09.04.22 5:35:44 5:35:44 5:37:28 10.04.22 5:33:28 5:33:28 5:35:12 11.04.22 5:31:12 5:31:12 5:32:56 12.04.22 5:28:56 5:28:56 5:30:41 13.04.22 5:26:42 5:26:42 5:28:26 14.04.22 5:24:28 5:24:28 5:26:12 15.04.22 5:22:14 5:22:14 5:23:59 16.04.22 5:20:02 5:20:02 5:21:46 17.04.22 5:17:50 5:17:50 5:19:34 18.04.22 5:15:39 5:15:39 5:17:23 19.04.22 5:13:29 5:13:29 5:15:13 20.04.22 5:11:19 5:11:19 5:13:03 21.04.22 5:09:11 5:09:11 5:10:55 22.04.22 5:07:03 5:07:03 5:08:47 23.04.22 5:04:57 5:04:57 5:06:40 24.04.22 5:02:51 5:02:51 5:04:35 25.04.22 5:00:47 5:00:47 5:02:30 26.04.22 4:58:44 4:58:44 5:00:27 27.04.22 4:56:42 4:56:42 4:58:25 28.04.22 4:54:41 4:54:41 4:56:24 29.04.22 4:52:41 4:52:41 4:54:24 30.04.22 4:50:43 4:50:43 4:52:25 01.05.22 4:48:46 4:48:46 4:50:28 02.05.22 4:46:50 4:46:50 4:48:32 03.05.22 4:44:56 4:44:56 4:46:38 04.05.22 4:43:03 4:43:03 4:44:44 05.05.22 4:41:12 4:41:12 4:42:53 06.05.22 4:39:23 4:39:23 4:41:03 07.05.22 4:37:35 4:37:35 4:39:14 08.05.22 4:35:48 4:35:48 4:37:28 09.05.22 4:34:04 4:34:04 4:35:43 10.05.22 4:32:21 4:32:21 4:33:59 11.05.22 4:30:40 4:30:40 4:32:18 12.05.22 4:29:00 4:29:00 4:30:38 13.05.22 4:27:23 4:27:23 4:29:00 14.05.22 4:25:48 4:25:48 4:27:24 15.05.22 4:24:15 4:24:15 4:25:50 16.05.22 4:22:44 4:22:44 4:24:18 17.05.22 4:21:15 4:21:15 4:22:48 18.05.22 4:19:48 4:19:48 4:21:21 19.05.22 4:18:23 4:18:23 4:19:55 20.05.22 4:17:01 4:17:01 4:18:32 21.05.22 4:15:41 4:15:41 4:17:11 22.05.22 4:14:23 4:14:23 4:15:53 23.05.22 4:13:08 4:13:08 4:14:37 24.05.22 4:11:55 4:11:55 4:13:23 25.05.22 4:10:45 4:10:45 4:12:12 26.05.22 4:09:38 4:09:38 4:11:04 27.05.22 4:08:33 4:08:33 4:09:58 28.05.22 4:07:31 4:07:31 4:08:55 29.05.22 4:06:32 4:06:32 4:07:55 30.05.22 4:05:35 4:05:35 4:06:57 31.05.22 4:04:41 4:04:41 4:06:03 01.06.22 4:03:51 4:03:51 4:05:11 02.06.22 4:03:03 4:03:03 4:04:22 03.06.22 4:02:18 4:02:18 4:03:36 04.06.22 4:01:36 4:01:36 4:02:53 05.06.22 4:00:57 4:00:57 4:02:13 06.06.22 4:00:21 4:00:21 4:01:36 07.06.22 3:59:48 3:59:48 4:01:02 08.06.22 3:59:19 3:59:19 4:00:31 09.06.22 3:58:52 3:58:52 4:00:03 10.06.22 3:58:29 3:58:29 3:59:39 11.06.22 3:58:09 3:58:09 3:59:17 12.06.22 3:57:52 3:57:52 3:58:59 13.06.22 3:57:38 3:57:38 3:58:44 14.06.22 3:57:28 3:57:28 3:58:32 15.06.22 3:57:21 3:57:21 3:58:24 16.06.22 3:57:16 3:57:16 3:58:18 17.06.22 3:57:16 3:57:16 3:58:16 18.06.22 3:57:18 3:57:18 3:58:17 19.06.22 3:57:24 3:57:24 3:58:22 20.06.22 3:57:32 3:57:32 3:58:29 21.06.22 3:57:44 3:57:44 3:58:40 22.06.22 3:57:59 3:57:59 3:58:53 23.06.22 3:58:17 3:58:17 3:59:10 24.06.22 3:58:39 3:58:39 3:59:30 25.06.22 3:59:03 3:59:03 3:59:54 26.06.22 3:59:30 3:59:30 4:00:20 27.06.22 4:00:01 4:00:01 4:00:49 28.06.22 4:00:34 4:00:34 4:01:21 29.06.22 4:01:10 4:01:10 4:01:56 30.06.22 4:01:49 4:01:49 4:02:34 01.07.22 4:02:30 4:02:30 4:03:15 02.07.22 4:03:15 4:03:15 4:03:58 03.07.22 4:04:02 4:04:02 4:04:44 04.07.22 4:04:51 4:04:51 4:05:33 05.07.22 4:05:43 4:05:43 4:06:24 06.07.22 4:06:38 4:06:38 4:07:18 07.07.22 4:07:35 4:07:35 4:08:14 08.07.22 4:08:34 4:08:34 4:09:12 09.07.22 4:09:35 4:09:35 4:10:13 10.07.22 4:10:39 4:10:39 4:11:16 11.07.22 4:11:45 4:11:45 4:12:21 12.07.22 4:12:52 4:12:52 4:13:28 13.07.22 4:14:02 4:14:02 4:14:37 14.07.22 4:15:14 4:15:14 4:15:47 15.07.22 4:16:27 4:16:27 4:17:00 16.07.22 4:17:42 4:17:42 4:18:15 17.07.22 4:18:59 4:18:59 4:19:31 18.07.22 4:20:18 4:20:18 4:20:49 19.07.22 4:21:38 4:21:38 4:22:08 20.07.22 4:22:59 4:22:59 4:23:29 21.07.22 4:24:22 4:24:22 4:24:51 22.07.22 4:25:46 4:25:46 4:26:15 23.07.22 4:27:11 4:27:11 4:27:40 24.07.22 4:28:37 4:28:37 4:29:06 25.07.22 4:30:05 4:30:05 4:30:33 26.07.22 4:31:33 4:31:33 4:32:02 27.07.22 4:33:03 4:33:03 4:33:31 28.07.22 4:34:33 4:34:33 4:35:01 29.07.22 4:36:05 4:36:05 4:36:33 30.07.22 4:37:37 4:37:37 4:38:05 31.07.22 4:39:10 4:39:10 4:39:37 01.08.22 4:40:43 4:40:43 4:41:11 02.08.22 4:42:17 4:42:17 4:42:45 03.08.22 4:43:52 4:43:52 4:44:20 04.08.22 4:45:27 4:45:27 4:45:55 05.08.22 4:47:03 4:47:03 4:47:31 06.08.22 4:48:40 4:48:40 4:49:07 07.08.22 4:50:16 4:50:16 4:50:44 08.08.22 4:51:53 4:51:53 4:52:21 09.08.22 4:53:31 4:53:31 4:53:58 10.08.22 4:55:08 4:55:08 4:55:36 11.08.22 4:56:46 4:56:46 4:57:14 12.08.22 4:58:25 4:58:25 4:58:52 13.08.22 5:00:03 5:00:03 5:00:30 14.08.22 5:01:42 5:01:42 5:02:09 15.08.22 5:03:20 5:03:20 5:03:48 16.08.22 5:04:59 5:04:59 5:05:27 17.08.22 5:06:38 5:06:38 5:07:06 18.08.22 5:08:18 5:08:18 5:08:45 19.08.22 5:09:57 5:09:57 5:10:24 20.08.22 5:11:36 5:11:36 5:12:03 21.08.22 5:13:15 5:13:15 5:13:43 22.08.22 5:14:55 5:14:55 5:15:22 23.08.22 5:16:34 5:16:34 5:17:02 24.08.22 5:18:13 5:18:13 5:18:42 25.08.22 5:19:53 5:19:53 5:20:21 26.08.22 5:21:32 5:21:32 5:22:01 27.08.22 5:23:11 5:23:11 5:23:40 28.08.22 5:24:50 5:24:50 5:25:20 29.08.22 5:26:30 5:26:30 5:26:59 30.08.22 5:28:09 5:28:09 5:28:39 31.08.22 5:29:48 5:29:48 5:30:18 01.09.22 5:31:27 5:31:27 5:31:58 02.09.22 5:33:06 5:33:06 5:33:37 03.09.22 5:34:45 5:34:45 5:35:16 04.09.22 5:36:25 5:36:25 5:36:56 05.09.22 5:38:04 5:38:04 5:38:35 06.09.22 5:39:43 5:39:43 5:40:14 07.09.22 5:41:22 5:41:22 5:41:53 08.09.22 5:43:01 5:43:01 5:43:32 09.09.22 5:44:40 5:44:40 5:45:11 10.09.22 5:46:19 5:46:19 5:46:50 11.09.22 5:47:58 5:47:58 5:48:29 12.09.22 5:49:37 5:49:37 5:50:09 13.09.22 5:51:16 5:51:16 5:51:48 14.09.22 5:52:55 5:52:55 5:53:27 15.09.22 5:54:34 5:54:34 5:55:06 16.09.22 5:56:14 5:56:14 5:56:45 17.09.22 5:57:53 5:57:53 5:58:25 18.09.22 5:59:32 5:59:32 6:00:04 19.09.22 6:01:12 6:01:12 6:01:44 20.09.22 6:02:52 6:02:52 6:03:24 21.09.22 6:04:31 6:04:31 6:05:04 22.09.22 6:06:11 6:06:11 6:06:44 23.09.22 6:07:51 6:07:51 6:08:24 24.09.22 6:09:31 6:09:31 6:10:05 25.09.22 6:11:12 6:11:12 6:11:45 26.09.22 6:12:52 6:12:52 6:13:26 27.09.22 6:14:33 6:14:33 6:15:07 28.09.22 6:16:14 6:16:14 6:16:48 29.09.22 6:17:55 6:17:55 6:18:29 30.09.22 6:19:36 6:19:36 6:20:11 01.10.22 6:21:18 6:21:18 6:21:52 02.10.22 6:23:00 6:23:00 6:23:34 03.10.22 6:24:42 6:24:42 6:25:16 04.10.22 6:26:24 6:26:24 6:26:59 05.10.22 6:28:06 6:28:06 6:28:41 06.10.22 6:29:49 6:29:49 6:30:24 07.10.22 6:31:32 6:31:32 6:32:07 08.10.22 6:33:16 6:33:16 6:33:51 09.10.22 6:35:00 6:35:00 6:35:34 10.10.22 6:36:44 6:36:44 6:37:18 11.10.22 6:38:28 6:38:28 6:39:03 12.10.22 6:40:13 6:40:13 6:40:47 13.10.22 6:41:57 6:41:57 6:42:32 14.10.22 6:43:43 6:43:43 6:44:17 15.10.22 6:45:28 6:45:28 6:46:03 16.10.22 6:47:14 6:47:14 6:47:49 17.10.22 6:49:00 6:49:00 6:49:35 18.10.22 6:50:47 6:50:47 6:51:21 19.10.22 6:52:34 6:52:34 6:53:08 20.10.22 6:54:21 6:54:21 6:54:56 21.10.22 6:56:08 6:56:08 6:56:43 22.10.22 6:57:56 6:57:56 6:58:31 23.10.22 6:59:44 6:59:44 7:00:19 24.10.22 7:01:32 7:01:32 7:02:07 25.10.22 7:03:20 7:03:20 7:03:56 26.10.22 7:05:09 7:05:09 7:05:45 27.10.22 7:06:58 7:06:58 7:07:34 28.10.22 7:08:47 7:08:47 7:09:23 29.10.22 7:10:36 7:10:36 7:11:12 30.10.22 7:12:25 7:12:25 7:13:02 31.10.22 7:14:15 7:14:15 7:14:51 01.11.22 7:16:04 7:16:04 7:16:41 02.11.22 7:17:54 7:17:54 7:18:31 03.11.22 7:19:43 7:19:43 7:20:20 04.11.22 7:21:33 7:21:33 7:22:10 05.11.22 7:23:22 7:23:22 7:23:59 06.11.22 7:25:12 7:25:12 7:25:49 07.11.22 7:27:01 7:27:01 7:27:38 08.11.22 7:28:50 7:28:50 7:29:27 09.11.22 7:30:39 7:30:39 7:31:16 10.11.22 7:32:27 7:32:27 7:33:05 11.11.22 7:34:15 7:34:15 7:34:53 12.11.22 7:36:03 7:36:03 7:36:41 13.11.22 7:37:51 7:37:51 7:38:28 14.11.22 7:39:38 7:39:38 7:40:15 15.11.22 7:41:24 7:41:24 7:42:02 16.11.22 7:43:10 7:43:10 7:43:48 17.11.22 7:44:55 7:44:55 7:45:33 18.11.22 7:46:39 7:46:39 7:47:17 19.11.22 7:48:22 7:48:22 7:49:01 20.11.22 7:50:04 7:50:04 7:50:44 21.11.22 7:51:46 7:51:46 7:52:26 22.11.22 7:53:26 7:53:26 7:54:07 23.11.22 7:55:05 7:55:05 7:55:46 24.11.22 7:56:43 7:56:43 7:57:25 25.11.22 7:58:20 7:58:20 7:59:02 26.11.22 7:59:55 7:59:55 8:00:38 27.11.22 8:01:29 8:01:29 8:02:12 28.11.22 8:03:01 8:03:01 8:03:44 29.11.22 8:04:32 8:04:32 8:05:15 30.11.22 8:06:01 8:06:01 8:06:45 01.12.22 8:07:27 8:07:27 8:08:12 02.12.22 8:08:52 8:08:52 8:09:37 03.12.22 8:10:15 8:10:15 8:11:01 04.12.22 8:11:36 8:11:36 8:12:22 05.12.22 8:12:55 8:12:55 8:13:41 06.12.22 8:14:11 8:14:11 8:14:58 07.12.22 8:15:25 8:15:25 8:16:12 08.12.22 8:16:37 8:16:37 8:17:24 09.12.22 8:17:46 8:17:46 8:18:33 10.12.22 8:18:52 8:18:52 8:19:40 11.12.22 8:19:56 8:19:56 8:20:44 12.12.22 8:20:57 8:20:57 8:21:46 13.12.22 8:21:55 8:21:55 8:22:44 14.12.22 8:22:50 8:22:50 8:23:40 15.12.22 8:23:42 8:23:42 8:24:32 16.12.22 8:24:31 8:24:31 8:25:22 17.12.22 8:25:17 8:25:17 8:26:08 18.12.22 8:25:59 8:25:59 8:26:52 19.12.22 8:26:39 8:26:39 8:27:32 20.12.22 8:27:15 8:27:15 8:28:09 21.12.22 8:27:48 8:27:48 8:28:43 22.12.22 8:28:18 8:28:18 8:29:13 23.12.22 8:28:44 8:28:44 8:29:40 24.12.22 8:29:06 8:29:06 8:30:03 25.12.22 8:29:26 8:29:26 8:30:23 26.12.22 8:29:42 8:29:42 8:30:40 27.12.22 8:29:54 8:29:54 8:30:53 28.12.22 8:30:03 8:30:03 8:31:02 29.12.22 8:30:08 8:30:08 8:31:08 30.12.22 8:30:10 8:30:10 8:31:10 31.12.22 8:30:08 8:30:08 8:31:09
:
Bearbeitet durch User
@ Peter M. (r2d3) Glaub mir bitte: Sonnen-auf/unter-gang mit Sekundenangabe ist unnütz! Temperatur und Luftdruck können über die ÄNDERUNG der Lichtbrechung am Horizont den Zeitpunkt gern mal um +/-15...30 s verschieben. Die MITTLERE Lichtbrechung am Horizont von gut 0,6° verlängert den Tagbogen sowieso! Dazu ist die Sonne kein Punkt, sondern hat etwa 1/2° Durchmesser, was den Aufgang vom Erscheinen der Oberkante bis zur voll sichtbaren Scheibe auf etwa 3 (Frühjahr, Herbst) bis 5 (Sommer, Winter) Minuten ausdehnt... Welcher Zeitpunkt darf's denn sein? Lies mal die Tipps der guten (an der Praxis orientierten) Experten etwas aufmerksamer: Gute Experten protzen nicht mit sinnlosen Stellen hinterm Komma! Gute Nacht.
Also ich hatte dafür vor Jahren eine Routine geschrieben um den Sonnenauf- und Untergang zu berechnen, war soweit ich mich erinnere auf ein paar Sekunden genau und passte in einen kleinen Attiny. Die eigentliche Funktion steckt in der sonnenverlauf.c, die main.c ist nur ein Wrapper um die Funktion auf dem PC mit sinnvollen Daten zu füttern und das Ergebnis anzuzeigen. Nach einem ersten Drübersehen liege ich mit dem Algorithmus innerhalb einer Sekunde vom v2005 (wobei das im Beispiel die gleichen Werte wie beim v2000 sind). Und nochwas zum Duffett-Smith, das ist nicht der Genauste sondern der Einfachste, eben das was gut mit Taschenrechner oder Excelsheet geht... Achja, in der hochgeladenen Version werden die Sekunden nicht angezeigt, weil es wie Kurt schon sagte einfach unsinnig ist (kann man natürlich in der sonnenverlauf.c ändern, wenn man es unbedingt braucht). Abgesehen von der Refraktion gibts es aber auch noch Geländegegebenheiten die den Sonnenaufgang so weit verschieben, dass es einfach nichts bringt da auf die Sekunde genau sein zu wollen.
:
Bearbeitet durch User
Ich hab das mal nach Duffet ausgerechnet, bin so bei +- 90 sec gelandet, sehr viel genauer dürfte es auch nicht werden; Refraktion, Betrachtungshöhe und noch 1 - 2 weitere Punkte.
Hallo Kurt, Kurt schrieb: > @ Peter M. (r2d3) > Glaub mir bitte: Sonnen-auf/unter-gang mit Sekundenangabe ist unnütz! > Temperatur und Luftdruck können über die ÄNDERUNG der Lichtbrechung am > Horizont den Zeitpunkt gern mal um +/-15...30 s verschieben. Die > MITTLERE Lichtbrechung am Horizont von gut 0,6° verlängert den Tagbogen > sowieso! erst lobst Du die Genauigkeit, jetzt beschwerst Du Dich? Wahrscheinlich hat jetzt einer von der Stänkerfraktion Deinen Gastnamen übernommen! Ich dachte, Dich würden diese Daten interessieren und alle anderen hätten eine Möglichkeit, ihre Ergebnisse mit meinen zu vergleichen. Ich habe zum Spaß damals alle Methoden implementiert. Mir ging es nie um Sekunden. Spätestens wenn man als Parameter in seine Funktion die Art der Dämmerung aufnimmt (bürgerliche, nautische und astronomische Dämmerung) und die Abweichungen dazwischen betrachtet, reicht die simpelste Methode. > Dazu ist die Sonne kein Punkt, sondern hat etwa 1/2° Durchmesser, was > den Aufgang vom Erscheinen der Oberkante bis zur voll sichtbaren Scheibe > auf etwa 3 (Frühjahr, Herbst) bis 5 (Sommer, Winter) Minuten ausdehnt... > Welcher Zeitpunkt darf's denn sein? Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen - scheint wohl nicht wichtig zu sein! > Lies mal die Tipps der guten (an der Praxis orientierten) Experten etwas Welche denn? > aufmerksamer: Gute Experten protzen nicht mit sinnlosen Stellen hinterm > Komma! Sinnlose Unterstellungen - typisches µc-Gemäkel.
Hallo Tim T., Tim T. schrieb: > Achja, in der hochgeladenen Version werden die Sekunden nicht angezeigt, > weil es wie Kurt schon sagte einfach unsinnig ist (kann man natürlich in > der sonnenverlauf.c ändern, wenn man es unbedingt braucht). Abgesehen die Werte wurde von mir einfach im Format hh:mm:ss ausgegeben. Wenn man den Speicherbedarf für seine Stützstellen trickreich minimieren will, ist die Angabe der Sekunden sinnvoll. Für meine persönlichen sportlichen Aktivitäten habe ich in meinem Hirn 1.0 eine Tabelle mit den Monatswerten des Sonnenuntergangs abgelegt - alle Angaben auf eine Viertelstunde gerundet. :)
Hab es jetzt mal kurz mit meinem Algorithmus durchgerechnet. Die maximale Abweichung der täglichen Sonnenaufgangs Zeitpunkte bei 52.37 N und 9.73 O, in den nächsten 10 Jahren beträgt weniger als 2 Minuten. Mit optimiertem Mittelwert wären es dann entsprechend weniger als 1 Minute Abweichung, ich denke damit kann man leben. Somit müsste man nur die 365(366) Tage speichern und hätte noch viel EEPROM frei.
Danke, sag ich ja. Wie groß wäre denn deine funktion im avr mit float / math lib? Hab's noch nicht ausprobiert.
Idefix schrieb: > Danke, sag ich ja. > Wie groß wäre denn deine funktion im avr mit float / math lib? > Hab's noch nicht ausprobiert. Meine es passte in einen AtTiny45 also kleiner 4kB, hab aber das Projekt gerade nicht zur Hand. Wobei wenn du noch 10 Minuten hast, ich habe gleich die Main soweit angepasst das sie dir die (arithmetischen) Mittelwerte für die nächsten 10 Jahre berechnen kann. Hatte mich aus Spaß einfach mal dran gesetzt.
Peter M. schrieb: > Datum v2000 v2005 Duffett > 01.01.22 8:30:01 8:30:01 8:31:03 > 02.01.22 8:29:52 8:29:52 8:30:54 > 03.01.22 8:29:38 8:29:38 8:30:42 Was soll der Sch..ß? Kannst du das Zeugs nicht als Dateianhang hochladen?
Also dann, würde ich es der Einfachheit halber tatsächlich wie im ersten Beitrag geschrieben über ein Array mit 366 Elementen vom Typ
1 | struct day { |
2 | uint8_t rise_hour; |
3 | uint8_t rise_min; |
4 | uint8_t set_hour; |
5 | uint8_t set_min; |
6 | };
|
machen. Dazu Braucht man eigentlich nur ein Array in dem die bereits vergangenen Tage bis zum aktuellen Monat enthalten sind:
1 | uint16_t vergangeneTage[] = { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }; |
Der Zugriff auf den Wert erfolgt dann mittels
1 | eeprom[vergangeneTage[Monat-1]+Tag-1]; |
PS: Hat länger gedauert weil ich nicht bemerkt hatte, dass ich im bearbeiten Modus war und beim Absenden war dann alles weg, weil zwischenzeitlich ein neuer Post kam, so dass ich nochmal anfangen konnte alles zu schreiben...
:
Bearbeitet durch User
Peter M. schrieb: > Ich dachte, Dich würden diese Daten interessieren und alle anderen > hätten eine Möglichkeit, ihre Ergebnisse mit meinen zu vergleichen. Kaum kommt zum Lob etwas berechtigte Kritik dazu, ist man von der Stänkerfraktion. Dann erklär mir doch mal, warum deine Daten für Hannover "nach Duffet" im ersten Halbjahr näher an den Daten in astronomischen Jahrbüchern liegen, während sie im 2. Halbjahr geringfügig schlechter werden und die Zeiten aus v2000 und v2005 (siehst du da einen Unterschied?), die im ersten Halbjahr auch mal 3 Minuten daneben liegen, besser passen. Zugegebenermaßen ist mein 20 Jahre altes C-Programm nach Jean Meeus auch heute noch nicht in einen µC mit 8K Flash zu implementieren (benötigt etwa 50 K im 80x86) - aber eine damit generierte Tabelle für den Jahresablauf stimmt heute noch auf +/- 1 Minute mit astronomischen Jahrbüchern überein. > Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen - > scheint wohl nicht wichtig zu sein! Ich denke mal, der Herr Duffet wird den Sonnendurchmesser und die mittlere Lichtbrechung am Horizont auch berücksichtigt haben sonst gäbe es in mittleren Breiten jeden Tag einen Fehler von 2...3 Minuten - aber wer nur den Code abtippt, hat wohl die Erklärungen nicht gelesen...
Kurt schrieb: > Zugegebenermaßen ist mein 20 Jahre altes C-Programm nach Jean Meeus auch > heute noch nicht in einen µC mit 8K Flash zu implementieren (benötigt > etwa 50 K im 80x86) - aber eine damit generierte Tabelle für den > Jahresablauf stimmt heute noch auf +/- 1 Minute mit astronomischen > Jahrbüchern überein. Hättest du mal ein paar Beispieldatensätze, sowohl von dir als auch die zugehörigen aus den Jahrbüchern für mich, würde die gerne mal gegen mein Programm laufen lassen. Hatte zuerst auch nach Jean Meeus - Astronomical Algorithms gerechnet, bin dann aber auf J. Laskar "Secular terms of classical planetary theories using the results of general theory" umgestiegen weil die Werte besser zu den Beispielen passten. Anschließend hatte ich aber noch die Konstanten mit neueren Werten von der Nasa ersetzt und würde mich jetzt doch mal dafür interessieren wie es abschneidet. >> Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen - >> scheint wohl nicht wichtig zu sein! > > Ich denke mal, der Herr Duffet wird den Sonnendurchmesser und die > mittlere Lichtbrechung am Horizont auch berücksichtigt haben sonst gäbe > es in mittleren Breiten jeden Tag einen Fehler von 2...3 Minuten - aber > wer nur den Code abtippt, hat wohl die Erklärungen nicht gelesen... Also den Sonnendurchmesser hatte ich berücksichtigt aber nicht die Refraktion, da diese einfach von zu vielen Faktoren abhängig ist und die gefundenen Algorithmen, glaube auch die im Astronomical Algorithms Buch von Meeus wirklich genau zu keinem der verfügbaren Beispieldatensätzen passten. Glaube die letzte Formel die ich da hatte war
1 | Refraktion = 1.02 / TAN(Hoehenwinkel + (10.3 / (Hoehenwinkel + 5.11))); |
2 | Hoehenwinkel += Refraktion / 60.0; |
und die passte nur leidlich.
Tim T. schrieb: > Glaube die letzte Formel die ich da hatte warRefraktion = 1.02 / > TAN(Hoehenwinkel + (10.3 / (Hoehenwinkel + 5.11))); > Hoehenwinkel += Refraktion / 60.0; > und die passte nur leidlich. Da fehlen Luftdruck und Temperatur. In Horizontnähe gehen die kräftig in die Refraktion ein.
Kurt schrieb: > Peter M. schrieb: >> Ich dachte, Dich würden diese Daten interessieren und alle anderen >> hätten eine Möglichkeit, ihre Ergebnisse mit meinen zu vergleichen. > > Kaum kommt zum Lob etwas berechtigte Kritik dazu, ist man von der > Stänkerfraktion. > > Dann erklär mir doch mal, warum deine Daten für Hannover "nach Duffet" Ich erkläre Dir als Leseverweigerer noch einmal, dass ich die Algorithmen nur programmiert habe und von Astronomie keine Ahnung habe. > im ersten Halbjahr näher an den Daten in astronomischen Jahrbüchern > liegen, Um die Abweichungen zu erklären, brauchst Du Astronomoniekenntnisse. Insbesondere musst Du auch wissen wie die Daten in astronomischen Jahrbüchern entstehen. > während sie im 2. Halbjahr geringfügig schlechter werden und die > Zeiten aus v2000 und v2005 (siehst du da einen Unterschied?), die im Die Korrektur erfolgt unten, danke für den Hinweis. > ersten Halbjahr auch mal 3 Minuten daneben liegen, besser passen. Siehe oben! > Zugegebenermaßen ist mein 20 Jahre altes C-Programm nach Jean Meeus auch > heute noch nicht in einen µC mit 8K Flash zu implementieren (benötigt > etwa 50 K im 80x86) - aber eine damit generierte Tabelle für den > Jahresablauf stimmt heute noch auf +/- 1 Minute mit astronomischen > Jahrbüchern überein. Stellvertretend für das Forum danke ich Dir zu dieser unsichtbaren Leistung die von Dritten allerdings leider nicht verfiziert werden kann. >> Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen - >> scheint wohl nicht wichtig zu sein! Sicherlich hat jeder µc-Forist im Bücherschrank Deine astronomischen Jahrbücher und ist bestrebt, die dort aufgeführten Werte auf die Millisekunde zu replizieren. Vielleicht solltest Du Dir nochmal die ursprüngliche Aufgabenstellung durchlesen. > Ich denke mal, der Herr Duffet wird den Sonnendurchmesser und die > mittlere Lichtbrechung am Horizont auch berücksichtigt haben sonst gäbe > es in mittleren Breiten jeden Tag einen Fehler von 2...3 Minuten - aber > wer nur den Code abtippt, hat wohl die Erklärungen nicht gelesen... Ja, ich kann gar nicht lesen. Deine diffuse Ansagen sind leider nicht hilfreich, Erkenntnisgewinn kannst Du offensichtlich nicht vermitteln. Anbei die korrigierte Tabelle: Datum v2000 v2005 Duffett 01.01.22 8:30:08 8:30:01 8:31:03 02.01.22 8:29:54 8:29:52 8:30:54 03.01.22 8:29:37 8:29:38 8:30:42 04.01.22 8:29:17 8:29:22 8:30:26 05.01.22 8:28:54 8:29:02 8:30:07 06.01.22 8:28:28 8:28:39 8:29:44 07.01.22 8:27:59 8:28:12 8:29:18 08.01.22 8:27:28 8:27:42 8:28:48 09.01.22 8:26:53 8:27:08 8:28:16 10.01.22 8:26:16 8:26:32 8:27:40 11.01.22 8:25:36 8:25:52 8:27:00 12.01.22 8:24:53 8:25:09 8:26:18 13.01.22 8:24:08 8:24:23 8:25:32 14.01.22 8:23:20 8:23:33 8:24:43 15.01.22 8:22:29 8:22:41 8:23:52 16.01.22 8:21:35 8:21:46 8:22:57 17.01.22 8:20:39 8:20:48 8:21:59 18.01.22 8:19:41 8:19:46 8:20:59 19.01.22 8:18:40 8:18:43 8:19:55 20.01.22 8:17:36 8:17:36 8:18:49 21.01.22 8:16:30 8:16:26 8:17:40 22.01.22 8:15:21 8:15:14 8:16:29 23.01.22 8:14:11 8:14:00 8:15:14 24.01.22 8:12:58 8:12:43 8:13:58 25.01.22 8:11:42 8:11:23 8:12:39 26.01.22 8:10:25 8:10:01 8:11:17 27.01.22 8:09:05 8:08:36 8:09:53 28.01.22 8:07:43 8:07:10 8:08:27 29.01.22 8:06:19 8:05:41 8:06:59 30.01.22 8:04:52 8:04:10 8:05:28 31.01.22 8:03:24 8:02:36 8:03:56 01.02.22 8:01:54 8:01:01 8:02:21 02.02.22 8:00:22 7:59:24 8:00:44 03.02.22 7:58:47 7:57:44 7:59:05 04.02.22 7:57:11 7:56:03 7:57:25 05.02.22 7:55:34 7:54:20 7:55:42 06.02.22 7:53:54 7:52:35 7:53:58 07.02.22 7:52:12 7:50:49 7:52:12 08.02.22 7:50:29 7:49:00 7:50:24 09.02.22 7:48:44 7:47:10 7:48:35 10.02.22 7:46:58 7:45:19 7:46:44 11.02.22 7:45:10 7:43:26 7:44:51 12.02.22 7:43:20 7:41:31 7:42:57 13.02.22 7:41:29 7:39:35 7:41:01 14.02.22 7:39:36 7:37:38 7:39:05 15.02.22 7:37:42 7:35:40 7:37:06 16.02.22 7:35:46 7:33:40 7:35:07 17.02.22 7:33:49 7:31:38 7:33:06 18.02.22 7:31:51 7:29:36 7:31:04 19.02.22 7:29:51 7:27:32 7:29:01 20.02.22 7:27:51 7:25:28 7:26:57 21.02.22 7:25:48 7:23:22 7:24:51 22.02.22 7:23:45 7:21:15 7:22:45 23.02.22 7:21:41 7:19:08 7:20:38 24.02.22 7:19:35 7:16:59 7:18:30 25.02.22 7:17:29 7:14:49 7:16:20 26.02.22 7:15:21 7:12:39 7:14:10 27.02.22 7:13:12 7:10:27 7:12:00 28.02.22 7:11:03 7:08:15 7:09:48 01.03.22 7:08:52 7:06:02 7:07:35 02.03.22 7:06:41 7:03:49 7:05:22 03.03.22 7:04:28 7:01:35 7:03:08 04.03.22 7:02:15 6:59:20 7:00:54 05.03.22 7:00:01 6:57:04 6:58:39 06.03.22 6:57:46 6:54:48 6:56:23 07.03.22 6:55:31 6:52:31 6:54:07 08.03.22 6:53:15 6:50:14 6:51:50 09.03.22 6:50:58 6:47:57 6:49:33 10.03.22 6:48:41 6:45:39 6:47:15 11.03.22 6:46:23 6:43:20 6:44:57 12.03.22 6:44:05 6:41:01 6:42:39 13.03.22 6:41:46 6:38:42 6:40:20 14.03.22 6:39:26 6:36:22 6:38:00 15.03.22 6:37:06 6:34:03 6:35:41 16.03.22 6:34:46 6:31:42 6:33:21 17.03.22 6:32:26 6:29:22 6:31:01 18.03.22 6:30:05 6:27:02 6:28:41 19.03.22 6:27:44 6:24:41 6:26:21 20.03.22 6:25:22 6:22:20 6:24:00 21.03.22 6:23:01 6:19:59 6:21:39 22.03.22 6:20:39 6:17:38 6:19:19 23.03.22 6:18:17 6:15:17 6:16:58 24.03.22 6:15:55 6:12:56 6:14:37 25.03.22 6:13:33 6:10:35 6:12:17 26.03.22 6:11:11 6:08:15 6:09:56 27.03.22 6:08:49 6:05:54 6:07:35 28.03.22 6:06:27 6:03:33 6:05:15 29.03.22 6:04:05 6:01:12 6:02:54 30.03.22 6:01:43 5:58:52 6:00:34 31.03.22 5:59:21 5:56:32 5:58:14 01.04.22 5:57:00 5:54:12 5:55:55 02.04.22 5:54:38 5:51:52 5:53:35 03.04.22 5:52:17 5:49:33 5:51:16 04.04.22 5:49:57 5:47:13 5:48:57 05.04.22 5:47:36 5:44:55 5:46:38 06.04.22 5:45:16 5:42:36 5:44:20 07.04.22 5:42:57 5:40:18 5:42:02 08.04.22 5:40:38 5:38:01 5:39:45 09.04.22 5:38:19 5:35:44 5:37:28 10.04.22 5:36:01 5:33:28 5:35:12 11.04.22 5:33:43 5:31:12 5:32:56 12.04.22 5:31:26 5:28:56 5:30:41 13.04.22 5:29:10 5:26:42 5:28:26 14.04.22 5:26:55 5:24:28 5:26:12 15.04.22 5:24:40 5:22:14 5:23:59 16.04.22 5:22:26 5:20:02 5:21:46 17.04.22 5:20:12 5:17:50 5:19:34 18.04.22 5:18:00 5:15:39 5:17:23 19.04.22 5:15:48 5:13:29 5:15:13 20.04.22 5:13:37 5:11:19 5:13:03 21.04.22 5:11:28 5:09:11 5:10:55 22.04.22 5:09:19 5:07:03 5:08:47 23.04.22 5:07:11 5:04:57 5:06:40 24.04.22 5:05:05 5:02:51 5:04:35 25.04.22 5:02:59 5:00:47 5:02:30 26.04.22 5:00:55 4:58:44 5:00:27 27.04.22 4:58:52 4:56:42 4:58:25 28.04.22 4:56:50 4:54:41 4:56:24 29.04.22 4:54:49 4:52:41 4:54:24 30.04.22 4:52:50 4:50:43 4:52:25 01.05.22 4:50:52 4:48:46 4:50:28 02.05.22 4:48:56 4:46:50 4:48:32 03.05.22 4:47:01 4:44:56 4:46:38 04.05.22 4:45:07 4:43:03 4:44:44 05.05.22 4:43:15 4:41:12 4:42:53 06.05.22 4:41:25 4:39:23 4:41:03 07.05.22 4:39:36 4:37:35 4:39:14 08.05.22 4:37:49 4:35:48 4:37:28 09.05.22 4:36:04 4:34:04 4:35:43 10.05.22 4:34:20 4:32:21 4:33:59 11.05.22 4:32:38 4:30:40 4:32:18 12.05.22 4:30:59 4:29:00 4:30:38 13.05.22 4:29:21 4:27:23 4:29:00 14.05.22 4:27:45 4:25:48 4:27:24 15.05.22 4:26:11 4:24:15 4:25:50 16.05.22 4:24:39 4:22:44 4:24:18 17.05.22 4:23:09 4:21:15 4:22:48 18.05.22 4:21:42 4:19:48 4:21:21 19.05.22 4:20:16 4:18:23 4:19:55 20.05.22 4:18:53 4:17:01 4:18:32 21.05.22 4:17:32 4:15:41 4:17:11 22.05.22 4:16:14 4:14:23 4:15:53 23.05.22 4:14:58 4:13:08 4:14:37 24.05.22 4:13:44 4:11:55 4:13:23 25.05.22 4:12:33 4:10:45 4:12:12 26.05.22 4:11:24 4:09:38 4:11:04 27.05.22 4:10:18 4:08:33 4:09:58 28.05.22 4:09:15 4:07:31 4:08:55 29.05.22 4:08:14 4:06:32 4:07:55 30.05.22 4:07:16 4:05:35 4:06:57 31.05.22 4:06:21 4:04:41 4:06:03 01.06.22 4:05:28 4:03:51 4:05:11 02.06.22 4:04:38 4:03:03 4:04:22 03.06.22 4:03:51 4:02:18 4:03:36 04.06.22 4:03:07 4:01:36 4:02:53 05.06.22 4:02:26 4:00:57 4:02:13 06.06.22 4:01:48 4:00:21 4:01:36 07.06.22 4:01:13 3:59:48 4:01:02 08.06.22 4:00:41 3:59:19 4:00:31 09.06.22 4:00:12 3:58:52 4:00:03 10.06.22 3:59:45 3:58:29 3:59:39 11.06.22 3:59:22 3:58:09 3:59:17 12.06.22 3:59:02 3:57:52 3:58:59 13.06.22 3:58:46 3:57:38 3:58:44 14.06.22 3:58:32 3:57:28 3:58:32 15.06.22 3:58:21 3:57:21 3:58:24 16.06.22 3:58:14 3:57:16 3:58:18 17.06.22 3:58:09 3:57:16 3:58:16 18.06.22 3:58:08 3:57:18 3:58:17 19.06.22 3:58:10 3:57:24 3:58:22 20.06.22 3:58:15 3:57:32 3:58:29 21.06.22 3:58:23 3:57:44 3:58:40 22.06.22 3:58:34 3:57:59 3:58:53 23.06.22 3:58:48 3:58:17 3:59:10 24.06.22 3:59:05 3:58:39 3:59:30 25.06.22 3:59:25 3:59:03 3:59:54 26.06.22 3:59:48 3:59:30 4:00:20 27.06.22 4:00:14 4:00:01 4:00:49 28.06.22 4:00:43 4:00:34 4:01:21 29.06.22 4:01:15 4:01:10 4:01:56 30.06.22 4:01:50 4:01:49 4:02:34 01.07.22 4:02:27 4:02:30 4:03:15 02.07.22 4:03:07 4:03:15 4:03:58 03.07.22 4:03:50 4:04:02 4:04:44 04.07.22 4:04:36 4:04:51 4:05:33 05.07.22 4:05:24 4:05:43 4:06:24 06.07.22 4:06:14 4:06:38 4:07:18 07.07.22 4:07:07 4:07:35 4:08:14 08.07.22 4:08:03 4:08:34 4:09:12 09.07.22 4:09:00 4:09:35 4:10:13 10.07.22 4:10:01 4:10:39 4:11:16 11.07.22 4:11:03 4:11:45 4:12:21 12.07.22 4:12:07 4:12:52 4:13:28 13.07.22 4:13:14 4:14:02 4:14:37 14.07.22 4:14:22 4:15:14 4:15:47 15.07.22 4:15:33 4:16:27 4:17:00 16.07.22 4:16:45 4:17:42 4:18:15 17.07.22 4:17:59 4:18:59 4:19:31 18.07.22 4:19:15 4:20:18 4:20:49 19.07.22 4:20:33 4:21:38 4:22:08 20.07.22 4:21:52 4:22:59 4:23:29 21.07.22 4:23:13 4:24:22 4:24:51 22.07.22 4:24:35 4:25:46 4:26:15 23.07.22 4:25:58 4:27:11 4:27:40 24.07.22 4:27:23 4:28:37 4:29:06 25.07.22 4:28:49 4:30:05 4:30:33 26.07.22 4:30:17 4:31:33 4:32:02 27.07.22 4:31:45 4:33:03 4:33:31 28.07.22 4:33:15 4:34:33 4:35:01 29.07.22 4:34:46 4:36:05 4:36:33 30.07.22 4:36:17 4:37:37 4:38:05 31.07.22 4:37:50 4:39:10 4:39:37 01.08.22 4:39:23 4:40:43 4:41:11 02.08.22 4:40:57 4:42:17 4:42:45 03.08.22 4:42:32 4:43:52 4:44:20 04.08.22 4:44:08 4:45:27 4:45:55 05.08.22 4:45:44 4:47:03 4:47:31 06.08.22 4:47:21 4:48:40 4:49:07 07.08.22 4:48:58 4:50:16 4:50:44 08.08.22 4:50:36 4:51:53 4:52:21 09.08.22 4:52:14 4:53:31 4:53:58 10.08.22 4:53:53 4:55:08 4:55:36 11.08.22 4:55:32 4:56:46 4:57:14 12.08.22 4:57:12 4:58:25 4:58:52 13.08.22 4:58:51 5:00:03 5:00:30 14.08.22 5:00:31 5:01:42 5:02:09 15.08.22 5:02:12 5:03:20 5:03:48 16.08.22 5:03:52 5:04:59 5:05:27 17.08.22 5:05:33 5:06:38 5:07:06 18.08.22 5:07:14 5:08:18 5:08:45 19.08.22 5:08:55 5:09:57 5:10:24 20.08.22 5:10:36 5:11:36 5:12:03 21.08.22 5:12:17 5:13:15 5:13:43 22.08.22 5:13:59 5:14:55 5:15:22 23.08.22 5:15:40 5:16:34 5:17:02 24.08.22 5:17:21 5:18:13 5:18:42 25.08.22 5:19:03 5:19:53 5:20:21 26.08.22 5:20:44 5:21:32 5:22:01 27.08.22 5:22:26 5:23:11 5:23:40 28.08.22 5:24:07 5:24:50 5:25:20 29.08.22 5:25:49 5:26:30 5:26:59 30.08.22 5:27:30 5:28:09 5:28:39 31.08.22 5:29:12 5:29:48 5:30:18 01.09.22 5:30:53 5:31:27 5:31:58 02.09.22 5:32:34 5:33:06 5:33:37 03.09.22 5:34:16 5:34:45 5:35:16 04.09.22 5:35:57 5:36:25 5:36:56 05.09.22 5:37:38 5:38:04 5:38:35 06.09.22 5:39:19 5:39:43 5:40:14 07.09.22 5:41:01 5:41:22 5:41:53 08.09.22 5:42:42 5:43:01 5:43:32 09.09.22 5:44:23 5:44:40 5:45:11 10.09.22 5:46:04 5:46:19 5:46:50 11.09.22 5:47:45 5:47:58 5:48:29 12.09.22 5:49:26 5:49:37 5:50:09 13.09.22 5:51:07 5:51:16 5:51:48 14.09.22 5:52:48 5:52:55 5:53:27 15.09.22 5:54:30 5:54:34 5:55:06 16.09.22 5:56:11 5:56:14 5:56:45 17.09.22 5:57:52 5:57:53 5:58:25 18.09.22 5:59:33 5:59:32 6:00:04 19.09.22 6:01:15 6:01:12 6:01:44 20.09.22 6:02:56 6:02:52 6:03:24 21.09.22 6:04:37 6:04:31 6:05:04 22.09.22 6:06:19 6:06:11 6:06:44 23.09.22 6:08:01 6:07:51 6:08:24 24.09.22 6:09:42 6:09:31 6:10:05 25.09.22 6:11:24 6:11:12 6:11:45 26.09.22 6:13:06 6:12:52 6:13:26 27.09.22 6:14:48 6:14:33 6:15:07 28.09.22 6:16:31 6:16:14 6:16:48 29.09.22 6:18:13 6:17:55 6:18:29 30.09.22 6:19:56 6:19:36 6:20:11 01.10.22 6:21:38 6:21:18 6:21:52 02.10.22 6:23:21 6:23:00 6:23:34 03.10.22 6:25:05 6:24:42 6:25:16 04.10.22 6:26:48 6:26:24 6:26:59 05.10.22 6:28:32 6:28:06 6:28:41 06.10.22 6:30:15 6:29:49 6:30:24 07.10.22 6:31:59 6:31:32 6:32:07 08.10.22 6:33:44 6:33:16 6:33:51 09.10.22 6:35:28 6:35:00 6:35:34 10.10.22 6:37:13 6:36:44 6:37:18 11.10.22 6:38:58 6:38:28 6:39:03 12.10.22 6:40:43 6:40:13 6:40:47 13.10.22 6:42:28 6:41:57 6:42:32 14.10.22 6:44:14 6:43:43 6:44:17 15.10.22 6:46:00 6:45:28 6:46:03 16.10.22 6:47:46 6:47:14 6:47:49 17.10.22 6:49:32 6:49:00 6:49:35 18.10.22 6:51:18 6:50:47 6:51:21 19.10.22 6:53:05 6:52:34 6:53:08 20.10.22 6:54:52 6:54:21 6:54:56 21.10.22 6:56:39 6:56:08 6:56:43 22.10.22 6:58:27 6:57:56 6:58:31 23.10.22 7:00:14 6:59:44 7:00:19 24.10.22 7:02:02 7:01:32 7:02:07 25.10.22 7:03:49 7:03:20 7:03:56 26.10.22 7:05:37 7:05:09 7:05:45 27.10.22 7:07:25 7:06:58 7:07:34 28.10.22 7:09:13 7:08:47 7:09:23 29.10.22 7:11:01 7:10:36 7:11:12 30.10.22 7:12:49 7:12:25 7:13:02 31.10.22 7:14:37 7:14:15 7:14:51 01.11.22 7:16:25 7:16:04 7:16:41 02.11.22 7:18:14 7:17:54 7:18:31 03.11.22 7:20:01 7:19:43 7:20:20 04.11.22 7:21:49 7:21:33 7:22:10 05.11.22 7:23:37 7:23:22 7:23:59 06.11.22 7:25:24 7:25:12 7:25:49 07.11.22 7:27:12 7:27:01 7:27:38 08.11.22 7:28:59 7:28:50 7:29:27 09.11.22 7:30:45 7:30:39 7:31:16 10.11.22 7:32:32 7:32:27 7:33:05 11.11.22 7:34:18 7:34:15 7:34:53 12.11.22 7:36:03 7:36:03 7:36:41 13.11.22 7:37:48 7:37:51 7:38:28 14.11.22 7:39:33 7:39:38 7:40:15 15.11.22 7:41:17 7:41:24 7:42:02 16.11.22 7:43:00 7:43:10 7:43:48 17.11.22 7:44:42 7:44:55 7:45:33 18.11.22 7:46:24 7:46:39 7:47:17 19.11.22 7:48:05 7:48:22 7:49:01 20.11.22 7:49:45 7:50:04 7:50:44 21.11.22 7:51:24 7:51:46 7:52:26 22.11.22 7:53:02 7:53:26 7:54:07 23.11.22 7:54:39 7:55:05 7:55:46 24.11.22 7:56:15 7:56:43 7:57:25 25.11.22 7:57:50 7:58:20 7:59:02 26.11.22 7:59:24 7:59:55 8:00:38 27.11.22 8:00:56 8:01:29 8:02:12 28.11.22 8:02:27 8:03:01 8:03:44 29.11.22 8:03:56 8:04:32 8:05:15 30.11.22 8:05:24 8:06:01 8:06:45 01.12.22 8:06:50 8:07:27 8:08:12 02.12.22 8:08:15 8:08:52 8:09:37 03.12.22 8:09:37 8:10:15 8:11:01 04.12.22 8:10:58 8:11:36 8:12:22 05.12.22 8:12:18 8:12:55 8:13:41 06.12.22 8:13:35 8:14:11 8:14:58 07.12.22 8:14:50 8:15:25 8:16:12 08.12.22 8:16:04 8:16:37 8:17:24 09.12.22 8:17:15 8:17:46 8:18:33 10.12.22 8:18:24 8:18:52 8:19:40 11.12.22 8:19:30 8:19:56 8:20:44 12.12.22 8:20:35 8:20:57 8:21:46 13.12.22 8:21:37 8:21:55 8:22:44 14.12.22 8:22:37 8:22:50 8:23:40 15.12.22 8:23:34 8:23:42 8:24:32 16.12.22 8:24:29 8:24:31 8:25:22 17.12.22 8:25:21 8:25:17 8:26:08 18.12.22 8:26:10 8:25:59 8:26:52 19.12.22 8:26:57 8:26:39 8:27:32 20.12.22 8:27:41 8:27:15 8:28:09 21.12.22 8:28:22 8:27:48 8:28:43 22.12.22 8:29:01 8:28:18 8:29:13 23.12.22 8:29:37 8:28:44 8:29:40 24.12.22 8:30:10 8:29:06 8:30:03 25.12.22 8:30:40 8:29:26 8:30:23 26.12.22 8:31:07 8:29:42 8:30:40 27.12.22 8:31:31 8:29:54 8:30:53 28.12.22 8:31:52 8:30:03 8:31:02 29.12.22 8:32:11 8:30:08 8:31:08 30.12.22 8:32:26 8:30:10 8:31:10 31.12.22 8:32:38 8:30:08 8:31:09
Warum zur Hölle packst du die Daten nicht in eine Datei und hängst diese an? Ist ja nicht so dass du den Hinweis dazu noch nicht bekommen hast.
Dein Programm aus Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" läuft, deine main.c aus Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" braucht andere Strukturen (Sonnenverlauf_t). Die erste main.c habe ich console.c genannt. gcc sonnenverlauf.c zeit.c zeitgleichung.c console.c -o console.exe console.exe -b 52.37 -l 9.73 -z 1 01.01.2022 08:30 16:17 02.01.2022 08:30 16:18 03.01.2022 08:30 16:19 ... Hannover ist nett, aber wie wär's mit https://en.wikipedia.org/wiki/Royal_Observatory,_Greenwich auf etwa 51.5,0 - leicht zu merken und stets UTC (GMT)? console.exe -b 51.5 -l0 -z0 01.01.2022 08:05 16:01 02.01.2022 08:04 16:02 03.01.2022 08:04 16:03 https://www.timeanddate.com/sun/@51.5,0.0?month=1&year=2022 1 08:05 ↑ (128°) 16:01 2 08:05 ↑ (127°) 16:02 3 08:05 ↑ (127°) 16:03 https://www.volker-quaschning.de/datserv/sunpos/index.php DIN5034 1 08:12:32 15:54:36 SUNAE 1 08:05:10 15:54:16 NREL SOLPOS 08:08:02 15:59:17 // http://souptonuts.sourceforge.net/code/sunrise.c.html // modifiziert, damit UTC rauskommt // gcc sunrise.c -o sunrise.exe -DDEBUG=1 -Wall -W -O2 -s -pipe -lm sunrise.exe 2022 1 1 51.5 0.0 Julian Date 2459580.500000 Sunrise timeUTC 485.626020 Sunset timeUTC 961.691341 Number of seconds 1640991600 Number of year 2022 Number of seconds 1640991600 Sunrise 01-01-2022 08:05:37 Sunset 01-01-2022 16:01:41 (c) Paul Schlyter, 1992 sunriset.exe Longitude (+ is east) and latitude (+ is north) : 0 51.5 Input date ( yyyy mm dd ) (ctrl-C exits): 2022 1 1 Day length: 7.94 hours With civil twilight 9.26 hours With nautical twilight 10.69 hours With astronomical twilight 12.05 hours Length of twilight: civil 0.66 hours nautical 1.38 hours astronomical 2.05 hours Sun at south 12.06h UT Sun rises 8.09h UT, sets 16.03h UT Civil twilight starts 7.43h, ends 16.69h UT Nautical twilight starts 6.71h, ends 17.41h UT Astronomical twilight starts 6.04h, ends 18.08h UT astroplan / astropy <SkyCoord (AltAz: obstime=2022-01-01 12:00:00.000, location=(3978648.5306648, 0., 4968362.45729103) m, pressure=0.0 hPa, temperature=0.0 deg_C, relative_humidity=0.0, obswl=1.0 micron): (az, alt, distance) in (deg, deg, AU) (179.1543046, 15.51462109, 0.98333876)> rise ISO: 2022-01-01 08:12:28.107, JD: 2459580.8419919796 set ISO: 2022-01-01 15:54:48.506, JD: 2459581.1630614074 Wie kann man vermeiden, dass GCC das hier alles wegoptimiert, und nur 54 Bytes programm erzeugt?
1 | #include <stdint.h> |
2 | #include <avr/io.h> |
3 | #include <time.h> |
4 | #include "sonnenverlauf.h" |
5 | |
6 | int main(void) { |
7 | |
8 | struct tm t = { .tm_mday = 1, .tm_mon = 0, .tm_year = 122, .tm_hour = 0, .tm_min = 0, .tm_sec = 0 }; |
9 | double Zeitzone = 0; |
10 | Sonnenverlauf_t Sonnenverlauf; |
11 | double GeographischeBreite = 51.5; |
12 | double GeographischeLaenge = 0.0; |
13 | |
14 | Sonnenverlauf = BerechneSonnenverlauf( t.tm_mday, t.tm_mon + 1, t.tm_year + 1900, Zeitzone, GeographischeBreite, GeographischeLaenge ); |
15 | int8_t dummy = Sonnenverlauf.AufgangMinuten; |
16 | while(1){ |
17 | (void) dummy; |
18 | }
|
19 | }
|
Idefix schrieb: > Dein Programm aus Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" > läuft, deine main.c aus > Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" braucht andere > Strukturen (Sonnenverlauf_t). Ja, ich hatte da den Aufgang und Untergang noch als double ins Struct gepackt weil ich so die Differenzen leichter vergleichen konnte, ist aber sonst nicht von Belang. > Wie kann man vermeiden, dass GCC das hier alles wegoptimiert, und nur 54 > Bytes programm erzeugt? > >
1 | > #include <stdint.h> |
2 | > #include <avr/io.h> |
3 | > #include <time.h> |
4 | > #include "sonnenverlauf.h" |
5 | >
|
6 | > int main(void) { |
7 | >
|
8 | > struct tm t = { .tm_mday = 1, .tm_mon = 0, .tm_year = 122, .tm_hour = |
9 | > 0, .tm_min = 0, .tm_sec = 0 }; |
10 | > double Zeitzone = 0; |
11 | > Sonnenverlauf_t Sonnenverlauf; |
12 | > double GeographischeBreite = 51.5; |
13 | > double GeographischeLaenge = 0.0; |
14 | >
|
15 | > Sonnenverlauf = BerechneSonnenverlauf( t.tm_mday, t.tm_mon + 1, |
16 | > t.tm_year + 1900, Zeitzone, GeographischeBreite, GeographischeLaenge ); |
17 | > int8_t dummy = Sonnenverlauf.AufgangMinuten; |
18 | > while(1){ |
19 | > (void) dummy; |
20 | > } |
21 | > } |
22 | >
|
Also erstmal war das tm Struct noch ein Überbleibsel aus einer Version wo das Datum über eine Time-Funktion kam und kann einfach mit int16_t Jahr, int8_t Monat, Tag ersetzt werden, ist dann übersichtlicher. Hab aber jetzt mal eine konsistente Version zusammengezippt und angehangen (und prompt vergessen die zeit.* Dateien zu entfernen, die werden nicht mehr gebraucht). Das Problem ist dass der Compiler erkennt, dass mit dem Wert nichts gemacht wird, also beim µC einfach auf einem PORT ausgeben oder beim PC eben printf. Wenn du versuchen solltest meine Aussage von oben, wo ich vermutet hatte das es in 4 kB Flash passt, überprüfen zu wollen, muss ich dich leider Enttäuschen, war hinterher doch auf einen Tiny85 umgestiegen weil es zu groß wurde (7,x kB). Bin aber immer noch dabei eine Möglichkeit zu finden ob man das Ganze nicht in Festkomma rechnen kann, aber bislang mit wenig Erfolg.
:
Bearbeitet durch User
Hab dann auch noch einen Fehler im Programm gefunden, also nochmal neu im Anhang. Zu blöd das man hier angehängte Dateien nicht mehr austauschen kann, zumindest in einem gewissen Zeitfenster (Bearbeitungszeitraum) wäre das manchmal hilfreich. EDIT: Kann eventuell ein Mod die Datei aus dem letzten Post löschen?
:
Bearbeitet durch User
Tim T. schrieb: > EDIT: Kann eventuell ein Mod die Datei aus dem letzten Post löschen? Dann bitte auch die unnütz langen Tabellen von Peter kürzen. Tim T. schrieb: > Das Problem ist dass der Compiler erkennt, dass mit dem Wert nichts > gemacht wird, also beim µC einfach auf einem PORT ausgeben oder beim PC > eben printf. > > Wenn du versuchen solltest meine Aussage von oben, wo ich vermutet hatte > das es in 4 kB Flash passt, überprüfen zu wollen, muss ich dich leider > Enttäuschen, war hinterher doch auf einen Tiny85 umgestiegen weil es zu > groß wurde (7,x kB). > > Bin aber immer noch dabei eine Möglichkeit zu finden ob man das Ganze > nicht in Festkomma rechnen kann, aber bislang mit wenig Erfolg. Habe einiges ausprobiert, auch "PORTB = dummy;" bringt nichts. Allerdings benutze ich PlatformIO (ohne framework). Er schmeißt alles raus, nur als Debug-Build bekomme ich etwas mit 4268 bytes. Aber du hast ja schon gesagt, dass es nicht in 4 k passt. Damit ist es deutlich größer, als die benötigten Daten, und da sie bei mir nicht verändert werden, ist es hinfällig. Anhand der anderen Berechnungen sieht man, dass es für einen Dämmerungsschalter praktisch egal ist, welche man benutzt. Anders wäre es wohl bei einem Heliostaten. Bestimmt kann man die Daten mit ein bisschen Rechnerei noch "komprimieren", hier ist eine Annäherung mit Kosinus auf 20 min: https://www.instructables.com/Calculating-Sunset-and-Sunrise-for-a-Microcontroll/ (und ein paar Links auf andere Berechnungen/Bibliotheken). Ähnliche Auflösung dürfte eine Tabelle mit Mittelwerten für jede Woche bringen. Ich bau jetzt erstmal dein letztes Programm für die Mittelwerte; falls mir noch Nenneswertes auffallen sollte, melde ich mich nochmal. @Alle: Vielen Dank für die Beteiligung!
Idefix schrieb: > Bestimmt kann man die Daten mit ein bisschen Rechnerei noch > "komprimieren", hier ist eine Annäherung mit Kosinus auf 20 min: > https://www.instructables.com/Calculating-Sunset-and-Sunrise-for-a-Microcontroll/ > (und ein paar Links auf andere Berechnungen/Bibliotheken). > Ähnliche Auflösung dürfte eine Tabelle mit Mittelwerten für jede Woche > bringen. Also bevor man dafür den Cosinus und damit die math.h oder eine Taylor Reihenentwicklung einbindet, kann man lieber direkt die paar Werte im EEprom oder Flash ablegen; die Genauigkeit der gemittelten Werte liegt dann wie bereits gesagt auch unter 1 Minute Abweichung (zumindest für Hannover^^) zu jedem Zeitpunkt in den nächsten 10 Jahren und schneller (=weniger Strom) ist es auch. Und warum nur Wochenwerte ablegen? Ob man jetzt 212 Byte EEprom/Flash verbrät oder 1464 Byte, macht den Braten ansich nicht mehr Fett.
Tim T. schrieb: > Warum zur Hölle packst du die Daten nicht in eine Datei und hängst diese > an? Ist ja nicht so dass du den Hinweis dazu noch nicht bekommen hast. Warum sollte ich das? Auf unfreundliche anonyme Pöbler reagiere ich nicht. Fluchen ist auch kein Ersatz für eine Begründung. Gibt es bei Dir ein Bandbreitenproblem im Kilobyte-Bereich? Idefix schrieb: > Hannover ist nett, aber wie wär's mit > https://en.wikipedia.org/wiki/Royal_Observatory,_Greenwich auf etwa > 51.5,0 - leicht zu merken und stets UTC (GMT)? Für Testzwecke sind Fälle, bei denen die Länge ungleich null ist, besser geeignet.
Peter M. schrieb: > Tim T. schrieb: >> Warum zur Hölle packst du die Daten nicht in eine Datei und hängst diese >> an? Ist ja nicht so dass du den Hinweis dazu noch nicht bekommen hast. > > Warum sollte ich das? Weil praktisch jeder der deine Textwand sieht sich nicht dafür interessiert und dafür erstmal ellenlang scrollen muss. > Auf unfreundliche anonyme Pöbler reagiere ich nicht. Das war so ziemlich das freundlichste was du von mir dazu erwarten kannst, ab hier geht es nur noch bergab. > Fluchen ist auch kein Ersatz für eine Begründung. Du bist anscheinend merkbefreit, ansonsten hätte es dir klar sein sollen. > Gibt es bei Dir ein Bandbreitenproblem im Kilobyte-Bereich? Es geht doch nicht um die verdammte Bandbreite, wobei Kilobyte auch schon wieder falsch ist; bei Bandbreite (im IT Bereich) geht es um Datenmenge pro Zeit. Es geht viel mehr darum, dass du den Leuten mit dem Verunstalten des Threads auf den Senkel gehst anstatt deine Daten einfach Anzuhängen. Stell dir einfach mal vor ich hätte den Quelltext oben jedesmal hintereinander weg im Betrag geschrieben, auch blöd oder?
:
Bearbeitet durch User
Wolfgang schrieb: > Tim T. schrieb: >> Glaube die letzte Formel die ich da hatte warRefraktion = 1.02 / >> TAN(Hoehenwinkel + (10.3 / (Hoehenwinkel + 5.11))); >> Hoehenwinkel += Refraktion / 60.0; >> und die passte nur leidlich. > > Da fehlen Luftdruck und Temperatur. In Horizontnähe gehen die kräftig in > die Refraktion ein. Fast vergessen hierauf zu antworten. Das Problem ist, der Luftdruck ist einfach nicht über alle Höhen konstant und eben sowenig die Temperatur. Ich erinnere mich noch als ich mal auf dem Segelboot den Sextanten im Mittelmeer bemüht habe um die Refraktion genau zu ermitteln. Egal welche Temperatur und Luftdruck ich in egal welches Modell eingesetzt habe, sobald der Höhenwinkel sich merklich änderte, passte wieder nichts. Ich gehe davon aus das die Temperatur der verschiedenen Höhen, ebenso wie der unterschiedliche Luftdruck einem da immer einen Strich durch die Rechnung macht wenn man einfach nur eine mittlere Temperatur und Luftdruck annimmt. Da gleichzeitig die Refraktion aber bei größeren Höhenwinkeln praktisch keine Rolle mehr spielt, habe ich es aufgegeben diese exakt zu bestimmen, es passt(e) einfach nie.
Peter M. schrieb: > Fluchen ist auch kein Ersatz für eine Begründung. Du spamst hier den Thread, den Leute lesen wollen, unter Missachtung der Forenregeln mit "endlosen" Zahlenkolonnen zu. Das IST die Begründung, nur um es auch für dich deutlich zu formulieren.
@tim_taylor Danke nochmal, das mit der RTC funktioniert soweit! Wer die "Bürgerliche Dämmerung" berechnen will, muss
1 | const double h = -50.0 / 60.0; // Sonnenaufgang beginnt sobald der Rand der Sonne über dem Horizont ist, nicht der Mittelpunkt! |
durch -6 ersetzen (zumindest stimmen die Zeiten dann mit timeanddate gut überein). Sind das 50 Winkelminuten in Grad? Wo kommt der Wert her? Laut Wikipedia ist der scheinbare Sonnendurchmesser ca. 32' - müssten es demnach nicht -16/60 sein? Ah, hier steckt der Wert, aber wie kommt er zustande? https://de.wikipedia.org/wiki/Sonnenuntergang > Der mittlere scheinbare Durchmesser der Sonne beträgt 31′59,3″. > Der scheinbare Sonnenuntergang wird daher für eine geometrische Horizonthöhe von −0,833° berechnet. Als Quelle angegeben ist https://www.astronomie.info/zeitgleichung/ > Das Licht der Sonne wird in der Atmosphäre gebeugt. Es läuft besonders in Horizontnähe auf einer leicht zum Boden hin gekrümmten Bahn. Deshalb kann man die Sonne auch noch sehen, wenn sie rein geometrisch schon untergegangen ist. Deshalb wird der Untergang und auch der Aufgang der Sonne für eine geometrische Horizonthöhe h von -50 Bogenminuten berechnet (-50 Bogenminuten sind -50/60°=-0.833° und -50/60/57.29578 rad=-0.0145 rad). Von bürgerlicher Dämmerung spricht man, wenn h= -6° ist, nautische Dämmerung entspricht h = -12° und schliesslich astronomische Dämmerung entspricht h = -18°. Ich dachte, das wird bei der "Refraktion" berücksichtigt. Aber gut, Fall gelöst. Hier noch ein paar Links: https://de.wikipedia.org/wiki/Sonnenaufgang https://de.wikipedia.org/wiki/Sonne https://de.wikipedia.org/wiki/Sonnenstand https://de.wikipedia.org/wiki/Dämmerung > Die bürgerliche Dämmerung beginnt mit dem Sonnenuntergang und endet nach astronomischer Definition, wenn der Mittelpunkt der Sonnenscheibe 6 Grad unter dem wahren Horizont steht.
Idefix schrieb: > @tim_taylor Danke nochmal, das mit der RTC funktioniert soweit! > > Wer die "Bürgerliche Dämmerung" berechnen will, muss >
1 | const double h = -50.0 / 60.0; // Sonnenaufgang beginnt sobald der |
2 | > Rand der Sonne über dem Horizont ist, nicht der Mittelpunkt! |
> > durch -6 ersetzen (zumindest stimmen die Zeiten dann mit timeanddate gut > überein). > > Sind das 50 Winkelminuten in Grad? Wo kommt der Wert her? > Laut Wikipedia ist der scheinbare Sonnendurchmesser ca. 32' - müssten es > demnach nicht -16/60 sein? > > Ah, hier steckt der Wert, aber wie kommt er zustande? Ja genau, die 50 Winkelminuten setzen sich aus 16 Winkelminuten Sonnenradius und etwa 34 Winkelminuten Refraktion zusammen. Aber wie bereits geschrieben ist das mit der Refraktion nicht immer so einfach...
:
Bearbeitet durch User
Entschuldigung, ich hätte gerne mein Geld zurück! $ wget https://www.mikrocontroller.net/attachment/548174/Sonnenaufgang.zip $ unzip Sonnenaufgang.zip $ cd Sonnenaufgang/ $ gcc *.c -lm $ ./a.out -b0 -l0 -z0 | grep 60 05;60;18;07; ... Lösung: Bei der Ausgabe von main.c entweder floor() statt round() benutzen, oder Überläufe für Stunden (und Datum) einbauen, wenn eine höhere Genauigkeit gewünscht ist. Leider ist mir das bislang nicht aufgefallen... hätte ich doch eine Prüfung auf zulässige Wertebereiche eingebaut... :-/ Mein Controller schreibt also gelegentlich "60" Minuten ins Alarmregister: "Configurations not listed in the table result in illogical operation." Weiss jemand, was dann passiert? Gibt es keinen Alarm oder irgendeinen? Aber gut, dass es mir im Sommer aufgefallen ist ;-)
Hier noch ein Rechner, aber die Zeiten könnten GMT+1 sein, da Norwegisch. Und nur für einzelne Zeitpunkte. Und ich kriege es nicht hin, Daten herauszukopieren. http://astro.met.no/astro/
Na und? An praktisch brauchbaren Daten bist du doch schon seit Februar nicht interessiert. Ein amateurmäßig-mieser Online-Rechner mit Koordinaten-Eingabe im GGG.ggggg-Format von 7.-Klässlern, der nur für einen Tag irgendwas außerhalb jeder Zeitzone liefert ist nun wirklich nichts, womit du uns noch überraschen kannst. Unbrauchbare Daten gibt es überall für (oft auch) umsonst. Ich könnte dir aber eine Menge unbrauchbarer Daten für viel Geld verkaufen! Gib Bescheid, wenn du das willst.
Kurt schrieb: > Ein amateurmäßig-mieser Online-Rechner mit Koordinaten-Eingabe im > GGG.ggggg-Format ... Du verwechselst klicky bunty GUI mit Rechnen. Hast du die Algorithmen überprüft, bevor du solche Kommentare ablässt?
Die Dämmerung hängt nicht nur vom Sonnenauf- und -untergang ab, sondern auch von Bewölkung, Niederschlag, Sonnenfinsternissen, etc. Deshalb ist es besser, die reale Helligkeit mit einem Sensor zu messen, auszuwerten und entsprechend zu reagieren.
auf der Suche nach einer Funktion für den Sonnenaufgang _ zwecks Einschalten der PV-Anlage bin ich hier gelandet. Alles sehr kompliziert. Vielleicht hilft jemandem mein Lösungsansatz:
1 | u8 sonnenaufgang[24]={// Tabelle Winterzeit Sonnenaufgang Rostock |
2 | //Abweichung von 3:39 *2Minuten
|
3 | 146, |
4 | 142, |
5 | 130, |
6 | 116, |
7 | 101, |
8 | 84, |
9 | 63, |
10 | 46, |
11 | 28, |
12 | 15, |
13 | 4, |
14 | 0, |
15 | 3, |
16 | 10, |
17 | 23, |
18 | 36, |
19 | 51, |
20 | 63, |
21 | 78, |
22 | 91, |
23 | 107, |
24 | 121, |
25 | 135, |
26 | 143
|
27 | };
|
28 | |
29 | |
30 | u8 hou_sa=0; |
31 | u8 min_sa=0; |
32 | void sub_sonnenaufgang(void){ |
33 | u8 rDAY=DAY; |
34 | if(rDAY>29)rDAY=29; |
35 | u16 pTabelle=(((MON-1)*30)+rDAY)/15;// oberer Wert |
36 | u16 SAminuten=2*sonnenaufgang[pTabelle]+219; |
37 | hou_sa=SAminuten/60; |
38 | min_sa=SAminuten%60; |
39 | //sommerzeit 30.3. bis 25.10.
|
40 | if(DAY+30*MON > 89 && DAY+30*MON < 326)hou_sa++; |
41 | }
|
Karl K. schrieb: > Alles sehr kompliziert. Ja, dafür universell. > Vielleicht hilft jemandem mein Lösungsansatz: Jemandem aus Rostock, der nur dieses Jahr das Problem hat, bestimmt.
Mario M. schrieb: > Jemandem aus Rostock, der nur dieses Jahr das Problem hat, bestimmt. da bleibe ich lieber bei meiner Rechnung aus Geokoordinaten Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" ist genauer aber ohne Lichtsensor, noch eins: Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, und die war nicht auf Rostock bezogen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.