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
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
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
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
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
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
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.
Hallo, vielen Dank für euere Tips! Ich werd die beiden Versionen mit Interrupt und EEprom ausprobieren! Gruss Jens www.fiedelak-elektronik.de
@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.
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.