Forum: Mikrocontroller und Digitale Elektronik PCF8583 Sommer/Winterzeit


von J. Fiedelak (Gast)


Lesenswert?

Hallo,

ich habe den PCF8583 in einer Apllikationen mit einem Mega163 
eingesetzt. Nun stellt sich das Problem der Umschaltung von Sommer auf 
Winterzeit.
Hat vielleicht jemand eine Idee wie man das am einfachsten machen 
könnte?


Gruß Jens

von Christoph (Gast)


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

von A. Arndt (Gast)


Lesenswert?

Hallo,

schliesse mich an, man muss doch nur sagen:

Wenn Tag z.B. = Sonntag an Tag mind. 24. dann
Stunde = Stunde - 1 z.B. und das auch für den Oktober...

Gruss
Alex
www.AR-online.de

von J. Fiedelak (Gast)


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

von Peter D. (peda)


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

von Christoph (Gast)


Lesenswert?

Hallo

wie wärs wenn du im AVR eeprom ein Sommerzeit/Winterzeit-Bit setzen 
würdest. Diese müßte bei jedem start abgefragt werden.

Gruß Christoph

von Martin (Gast)


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.

von Jens Fiedelak (Gast)


Lesenswert?

Hallo,

vielen Dank für euere Tips!

Ich werd die beiden Versionen mit Interrupt und EEprom ausprobieren!

Gruss Jens

www.fiedelak-elektronik.de

von Schmittchen (Gast)


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.

von Peter D. (peda)


Angehängte Dateien:

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

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
Noch kein Account? Hier anmelden.