Weiß denn wirklich niemand eine Lösung des Problems?![]()
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
Weiß denn wirklich niemand eine Lösung des Problems?![]()
Mit dem Tiny habe ich etwas leider noch nie gemacht. Aber ich kann dir nachher einen Code für einen Mega32 und eine DS1307 geben.
Dann weißt du zumindest ob der Code für den I²C richtig ist. Dann kann der Fehler nur noch bei der Libary liegen.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hey,
einen code für einen Atmega32 und dem DS1307 hatte ich auch schon einmal programmiert, er funktionierte auch und sieht im großen und ganzen genau so aus wie mein geposteter, bloß ohne Libary.
Ist deiner eventuell etwas anders?
Mh wie bring ich es aber dann zum laufen ohne Libary?![]()
schau mal HIER nach, vielleicht findest Du da was... ich programmiere schon lange nicht mehr in Bascom..weiss auch nicht weiter.
Gruss
OL
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Ne meiner sieht genau so aus.
Sicher das du bei der Libary nichts vergessen hast?
Btw....was mir gerade einfällt.....lösch mal das "Config Clock = User".
Das hatte ich auch mal in meinem Nixieuhrprogramm und sie hat nur Bullshit gemacht.
Und dann musst du halt noch die Sprungmarken ins Programm setzen, sonst läuft eine leere Endlosschleife durch
Ach und die Variablen (das macht ja atm Config Clock) definieren.
Laut Bascomhilfe für Config Clock:
Configures the timer to be used for the TIME$ and DATE$ variables.
Ich denke mal das funkt dir dazwischen.
Geändert von Kampi (13.10.2012 um 20:41 Uhr)
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Lesezeichen