Pages: 1 [2]   Go Down
Author Topic: DS1307 Lib  (Read 1071 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Faraday Member
**
Karma: 80
Posts: 2737
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du verwendest auch Time nicht korrekt (oder es war nur als Test). Time ist zugegebenerweise recht kompliziert an manchen Stellen. Aber schau dir mal die Beispiele an die da dabei sind.

Wenn du das machst:
Code:
sprintf(lcdline,"%02d:%02d:%02d",hour(),minute(),second());
zeigt Time die aktuelle Uhrzeit an. Einfach () und keine Parameter übergeben. Der zählt halt dann lokal auf dem Arduino und verliert die Zeit beim Ausschalten. Deshalb gibt es die sync-Funktion mit einem Zeitgeber.

Bei der RTC geht das einfach so:
Code:
lcd.print(rtc.getDateStr());
Du musst du Uhr halt auch erst mal stellen. Das ist bei Time auch der Fall.

Bei Time gibt es auch noch eine andere Möglichkeit, und zwar wenn man erst mal einen time_t in ein leserliches TimeElements struct umwandelt:
Code:
TimeElements tm;
time_t time = RTC.now();
breakTime(time, tm);

Dann kann man über tm.Hour, tm.Minute, tm.Day etc. auf alle Werte zugreifen. Wenn man direkt hour(), etc. macht, führt er das jedesmal im Hintergrund aus.


So kann man auch die Uhr stellen:
Code:
TimeElements tm;
tm.Day = 4;
tm.Month = 8;
tm.Year = CalendarYrToTm(2013);
tm.Wday = 5;
tm.Hour = 12;
tm.Minute = 20;
tm.Second = 0;
time_t time = makeTime(tm);
setTime(time);
« Last Edit: August 04, 2013, 03:43:38 pm by Serenifly » Logged

Cloppenburg
Offline Offline
God Member
*****
Karma: 23
Posts: 802
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
      sprintf(lcdline,"%02d:%02d:%02d",hour(g_thread_tTimer),minute(g_thread_tTimer),second(g_thread_tTimer));

Da gib ich doch Werte rüber.
Aus dem ersten Post war nur "Test".

Mit RTC hab ichs auch so gemacht, nachdem es anders nicht ging.

Das gute an der DS1307 Lib ist, dass man nichts auskommentieren muss, um die Zeit einzustellen.
einfach den hier machen und schon alles erledigt

Code:
rtc.setTime(t.hour++,t.min,t.sec);
Logged

Arduino UNO, Ethernet Shield, Keypad Shield
1284p, Arduino MEGA.

Pages: 1 [2]   Go Up
Jump to: