Go Down

Topic: DS1307 Zeit stellen (Read 675 times) previous topic - next topic

r2d2

Hallo,


wollte heute im Zuge der Zeitumstellung mein DS1307 stellen. Dazu hab ich einfach einen kleinen Sketch geschrieben...

Code: [Select]
#include <Wire.h>

#include <DS1307new.h>

void setup(){

Serial.begin(9600);
RTC.setTime();

RTC.fillByYMD(2013,3,31);
RTC.fillByHMS(19,17,0);

RTC.startClock();


RTC.getTime();
Serial.print(RTC.hour);
Serial.print(":");
Serial.print(RTC.minute);
Serial.print(":");
Serial.println(RTC.second);
Serial.print(RTC.day);
Serial.print(".");
Serial.print(RTC.month);
Serial.print(".");
Serial.print(RTC.year);
Serial.print("   ");
Serial.print(RTC.dow);
}

void loop()
{
 
 


Laut Konsole, haben wir jetzt nur noch 00:00:00 2046.... Bin echt am verzweifeln. Woran liegt das? Vorneweg: Ja, die RTC ist korrekt angeschlossen.

Danke für eure Hilfe.

uwefed

Im Beispiel der von Dir verwendeten Bibliothek wird folgendes gemacht:
Code: [Select]

 // RTC.getRAM(54, (uint8_t *)&TimeIsSet, sizeof(uint16_t));
 // if (TimeIsSet != 0xaa55)
 {
   RTC.stopClock();
       
   RTC.fillByYMD(2011,4,8);
   RTC.fillByHMS(22,7,0);
   
   RTC.setTime();
     //TimeIsSet = 0xaa55;
     //RTC.setRAM(54, (uint8_t *)&TimeIsSet, sizeof(uint16_t));
   RTC.startClock();
 }


Die von mir auskommentierten Zeilen kontrollieren ob ein gewisser Wert im RAM vorhanden ist  (dies ist nicht der Fall, wenn die RTC die Zeit verloren hat) und setzt in diesem Fall die Zeit.
Die DS1307 hat auch ein Bit das die Gültigkeit der Zeit anzeigt. Auch kann man dieses dazu verwenden um die Zeit automatisch bei Verlust zu setzen (immer auf eine falsche einprogrammierte Zeit) Die Verwendete ibliothek hat diese Funktion nicht.

Laut Beschreibung http://code.google.com/p/ds1307new/downloads/list müßte die Version 1.24 die Umschaltung der Sommer-Winterzeit automatisch machen.

In dieser Bibliotek http://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/understanding-the-code werden die Systemvariablen __TINE__ und __DATE__  verwendet um die Zeit des PCs automatisch zu erhalten. Die Zeit / Datum sind dann die Zeit / Datum im Zeitpunk der Kompilierung des Sketches.

Grüße Uwe

Go Up