Einen schönen Sonntag euch allen!
Ich bin dabei oder besser versuche eine Heizungssteuerung zu programmieren.
Mit folgendem Code, den ich hier gefunden habe ist eine Uhr auf meinem Controller implementiert.
Hierzu habe ich zwei Fragen:
1) Was ist die '$lib "ds1307rtc.lib" und wo finde ich diese?
2) In der Datumsanzeige sind sonderzeichen drin, die ich so nicht haben möchte. Wie und wo kann ich diese ändern (z.B. dass es so aussieht
14-01-07).
Neben den obigen Fragen habe ich noch eine weitere.
Um Schaltvorgänge zu bestimmten Uhrzeiten zu realisieren muss ich in bestimmten Zeitintervallen die Uhrzeit abfragen. Z.B. Wenn später wie 22:00 dann ausschalten. Wenn später wie 06:00 dann einschalten. Wie macht man sowas am besten.
Danke für die Hilfe an alle!Code:$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portd.2 , E = Portd.3 , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 Config Lcdbus = 4 Config Lcdmode = Port Config Sda = Portc.4 Config Scl = Portc.5 Cls $lib "mcsbyte.lbx" ' for smaller code '$lib "ds1307rtc.lib" ' modified lib 'address of ds1307 Const Ds1307w = &HD0 ' Addresses of Ds1307 clock Const Ds1307r = &HD1 Config Clock = User ' this will dim the bytes automatic 'dim other needed variables Dim Weekday As Byte 'Locate 1 , 1 'Lcd "DS1307" 'Waitms 100 ' assigning the time will call the SetTime routine Time$ = "23:22:30" ' to watch the day changing value Date$ = "13.01.07" ' 13 november 2002 Cls Do Locate 1 , 1 Lcd Date$ ; Locate 2 , 1 Lcd Time$ Waitms 500 Loop End 'called from ds1307clock.lib Getdatetime: I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 0 ' start address in 1307 I2cstart ' Generate start code I2cwbyte Ds1307r ' send address I2crbyte _sec , Ack I2crbyte _min , Ack ' MINUTES I2crbyte _hour , Ack ' Hours I2crbyte Weekday , Ack ' Day of Week I2crbyte _day , Ack ' Day of Month I2crbyte _month , Ack ' Month of Year I2crbyte _year , Nack ' Year I2cstop _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) Return Setdate: _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 4 ' starting address in 1307 I2cwbyte _day ' Send Data to SECONDS I2cwbyte _month ' MINUTES I2cwbyte _year ' Hours I2cstop Return Settime: _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 0 ' starting address in 1307 I2cwbyte _sec ' Send Data to SECONDS I2cwbyte _min ' MINUTES I2cwbyte _hour ' Hours I2cstop Return
Martin







Zitieren
Lesezeichen