D35troy3r
07.10.2012, 12:02
Hallo,
ich habe eine kleine Binäruhr mit einem Attiny2313 und einer RTC (Ds1307) aufgebaut.
Programmiert wird das ganze derzeitig mit Bascom. Nun hab ich gelesen das für eine I2C Verbindung am Attiny eine extra Bibliothek eingebunden werden muss da das ganze über USI läuft.
Wenn ich mir die Uhrzeit anzeigen lassen will kommt nur quatsch raus, falsche zahlen und die Uhr läuft nicht weiter.
SQW Ausgang habe ich auch schon probiert zu setzen, allerdings schaltet der Pin trotzdem nicht im 1Hz Takt.
Uhrenquarz wurde ausgetauscht falls dieser defekt gewesen sein sollte. Fehlt noch was Softwareseitig?
$regfile = "attiny2313.dat"
$crystal = 1000000
$hwstack = 20
$swstack = 30
$framesize = 20
$noramclear
$lib "i2c_usi.lbx"
Config Sda = Portb.5 ' I2C Bus konfigurieren
Config Scl = Portb.7
Const Ds1307w = &HD0 ' Addresse der Ds1307 Uhr
Const Ds1307r = &HD1
Config Clock = User
I2cinit
Time$ = "00:17:00"
Do
'Hauptprogramm
Loop
End
Getdatetime:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte _sec , Ack
I2crbyte _min , Ack
I2crbyte _hour , Ack
I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
Return
Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte _sec
I2cwbyte _min
I2cwbyte _hour
I2cstop
Return
Gruß
D35troy3r
ich habe eine kleine Binäruhr mit einem Attiny2313 und einer RTC (Ds1307) aufgebaut.
Programmiert wird das ganze derzeitig mit Bascom. Nun hab ich gelesen das für eine I2C Verbindung am Attiny eine extra Bibliothek eingebunden werden muss da das ganze über USI läuft.
Wenn ich mir die Uhrzeit anzeigen lassen will kommt nur quatsch raus, falsche zahlen und die Uhr läuft nicht weiter.
SQW Ausgang habe ich auch schon probiert zu setzen, allerdings schaltet der Pin trotzdem nicht im 1Hz Takt.
Uhrenquarz wurde ausgetauscht falls dieser defekt gewesen sein sollte. Fehlt noch was Softwareseitig?
$regfile = "attiny2313.dat"
$crystal = 1000000
$hwstack = 20
$swstack = 30
$framesize = 20
$noramclear
$lib "i2c_usi.lbx"
Config Sda = Portb.5 ' I2C Bus konfigurieren
Config Scl = Portb.7
Const Ds1307w = &HD0 ' Addresse der Ds1307 Uhr
Const Ds1307r = &HD1
Config Clock = User
I2cinit
Time$ = "00:17:00"
Do
'Hauptprogramm
Loop
End
Getdatetime:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte _sec , Ack
I2crbyte _min , Ack
I2crbyte _hour , Ack
I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
Return
Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte _sec
I2cwbyte _min
I2cwbyte _hour
I2cstop
Return
Gruß
D35troy3r