===== RTC DS1307 == * Real-time clock (RTC) * 56-Byte, Batterie-gestützter RAM zur Datenspeicherung * Two-wire serial interface I2C * Programmierbarer Ausgang (OFF, 1Hz, 4kHz, 8kHz und 32kHz) === Bildergalarie == {{:sen_time_ds1307:00099-02-l.jpg|}} (Quelle:SparkFun Electronics ®) === Datenblatt == {{:sen_time_ds1307:ds1307.pdf|}} === Modul == {{:sen_time_ds1307:rtc-module-schematic.pdf|}} === Anschaltung an Propeller == {{:sen_time_ds1307:rtc_3.png|}} === Softwaremodule == {{:sen_time_ds1307:ds1307.spin|ds1307.spin}} [[schnipsel_ascii0_str:start|ascii0_str.spin]] === Funktionsbeispiel == '' EEPROM_1.spin '' +--VGA.spin '' +--ASCII0_STR '' +--DS1307.spin == CON == RTC_CLK = 0 RTC_DAT = 1 == OBJ == rtc : "DS1307.spin" str : "ASCII0_STR" == in PUB oder PRI Routinen == 'Treiber Aktivieren rtc.rtcEngineStart(RTC_DAT, RTC_CLK, -1) 'Treiber deaktivieren rtc.RTCEngineStop 'aktuelle Zeit vom RTC in Propeller laden 'eingelesene Zeit ausgeben rtc.readTime 'den Wochentag ausgeben in Textform vga.pr_str(lookup(rtc.clockDay: string("Sonntag"), { } string("Montag"), { } string("Dienstag"), { } string("Mittwoch"), { } string("Donnerstag"), { } string("Freitag"), { } string("Samstag"))) 'den Monat ausgeben in Textform vga.pr_str(lookup(rtc.clockMonth: string("Januar"), { } string("Feburar"), { } string("Maerz"), { } string("April"), { } string("May"), { } string("Juni"), { } string("Juli"), { } string("August"), { } string("September"), { } string("Oktober"), { } string("November"), { } string("Dezember"))) 'vom Datum den Tag ausgeben als Zahl 2 stellig vga.pr_str(1 + str.integerToDecimal(rtc.clockDate, 2)) 'vom Datum den Jahr ausgeben als Zahl 4 stellig vga.pr_str(1 + str.integerToDecimal(rtc.clockYear, 4)) 'komplette ausgabe der Zeit im 24h Format if(rtc.clockMeridiemTime) '24h Anzeige vga.pr_str(1 + str.integerToDecimal(rtc.clockMeridiemHour+12, 2)) else vga.pr_str(1 + str.integerToDecimal(rtc.clockMeridiemHour, 2)) vga.pr_chr(":") vga.pr_str(1 + str.integerToDecimal(rtc.clockMinute, 2)) vga.pr_chr(":") vga.pr_str(1 + str.integerToDecimal(rtc.clockSecond, 2)) 'Zeit stellen Werte im BCD-Format rtc.writeTime(second, minute, hour, day, date, month, year) 'Eine Zelle Auslesen value:=rtc.readSRAM(index) 'Eine Zelle beschreiben rtc.writeSRAM(index, value) === Programme == * {{:sen_time_ds1307:ds1307_rtc_driver_1.zip|Parallax DS1307 Demoprogramm}}