PCF8583 Sommer/Winterzeit

Gast #25258
Lesenswert?
• ▲
▼
Hallo,

wenn man weiss, daß die Umstellung von Winter- auf Sommerzeit immer am 
letzten Sonntag im März und die Rückstellung am letzten Sonntag im 
Oktober erfolgt, dürfte das kein Problem sein.

Gruss

Christoph
Gast #25260
Lesenswert?
• ▲
▼
Hallo,

das Problem dabei, das Gerät läuft nicht immer. Es handelt sich dabei 
nämlich um einen steuerrechner für Traktoren. D.h. die Software läuft 
nur wenn der Traktor auch läuft. Deshalb wird diese einfache Abfrage 
nach Sonntag mind. 24. nicht so einfach funktionieren.

Gruß Jens

www.fiedelak-elektronik.de
#25261
Lesenswert?
• ▲
▼
int szeit = WINTER;
   get_date( &day, &month, &wday );
/************************************** Alte Regelung 
******************/
/*
   if( month > 3 && month < 9 )
      szeit = SOMMER;
   if( month == 3 && (day - wday) >= 21 )
      szeit = SOMMER;
   if( month == 9 && (day - wday) < 21 )
      szeit = SOMMER;
*/
/************************************** Neue Regelung ab 1996 
**********/
   if( month > 3 && month < 10 )
      szeit = SOMMER;
   if( month == 3 && (day - wday) >= 25 )
      szeit = SOMMER;
   if( month == 10 && (day - wday) < 25 )
      szeit = SOMMER;


Peter
Gast #25263
Lesenswert?
• ▲
▼
Hi,

> das Problem dabei, das Gerät läuft nicht immer. Es handelt sich dabei nämlich um 
einen steuerrechner für Traktoren. D.h. die Software läuft nur wenn der Traktor 
auch läuft.

Ich denk mal das der PCF8583 trotzdem noch unter Spannung steht, sonst 
müsstest ja immer wieder die Zeit neu einstellen, wodurch  das Problem 
mit der Sommerzeit ja gar nicht vorkommen würde ;-).

Kannst es auch mal mit einem Dated Alarm bzw. Interrupt versuchen. Der 
Alarm bleibt bestehen bis er vom µC gelöscht wird. Danach stellst das 
Datum für die nächste Zeitumstellung. Musst halt mindestens einmal in 
der Sommer- und einmal in der Winterzeit auf den Acker.

Die sicherste Lösung ist aber sicherlich die mit dem Flag im EEprom oder 
im Ram des PCF8583. !!!!

Musst dich aber bischen beeilen hast weniger als 16h Zeit.

Gruss Martin.
Gast #25265
Lesenswert?
• ▲
▼
@Peter:
Welcher Wertebereich ist für wday einzusetzen? (0-6 oder 1-7). Ist dabei 
Montag oder Sonntag dem kleinsten Wert zugeordnet?
Oder direkt: Ist deine Routine auf das DCF77-Protokoll zugeschnitten?

Schmittchen.
#25266
Lesenswert?
• ▲
▼
@Schmittchen,

ist schon uralt das Programm.
Ich habs geschrieben, als Windows noch nicht mit der Sommerzeit umgehen 
konnte und es dann in der autoexec.bat aufgerufen. Anbei der komplette 
Code.

Tut jetzt bei mir immer noch seinen Dienst (Windows-NT bzw. 
Windows98SE).


Das Datum liefert der DOS Interrrupt 21. Ich glaube, Sonntag=0.


void get_date( int *day, int *month, int *wday )
{
   asm {
      mov ah, 2Ah
      int 21h
   }
   *wday = _AL;
   *day = _DL;
   *month = _DH;
}


Peter
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.