RTC DS1307

Bildergalarie

(Quelle:SparkFun Electronics ®)

Datenblatt

ds1307.pdf

Modul

rtc-module-schematic.pdf

Anschaltung an Propeller

Softwaremodule

ds1307.spin

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