Hilfe bei meinem DS1621 Problem am ATmega16

Gast #2152622
Lesenswert?

Hallo zusammen,
ich versuche jetzt schon seit geraumer Zeit den DS1621 Temperatursensor 
zum Laufen zu kriegen. Dafür habe ich mir twimaster.c sowie i2cmaster.h 
besorgt und damit ein Programm geschrieben, was so eigentlich 
funktionieren sollte und ich weiß einfach nicht wo das Problem liegt. 
Das Programm crasht immer an der selben Stelle, nämlich beim i2c_stop() 
in der Zeile 46 des twimaster.c:

//Wartet bis der STOP Zustand ausgefuehrt und der I2C Bus freigeben 
wurde
while(TWCR & (1<<TWSTO));

Irgendwie wird TWSTO nicht automatisch gecleared und ich habe keinen 
blassen Schimmer warum.

Ich arbeite auf Ubuntu, benutze einen ATmega16 und programmiere diesen 
mit dem AVRISPMKII. Es ist auf keinen Fall ein Hardware-Problem, da die 
Anschlüsse 100% stimmen.

Es wäre wahnsinnig nett wenn ihr mir einen Lösungsansatz geben könntet. 
Die Programmteile liegen im Anhang.

Mit freundlichen Grüßen,
Oliver
Angehängte Dateien:
Gast #2152661
Lesenswert?

Hallo,
ich bekomme von i2c_start() '0' zurück, also so wie es sein sollte. 
Pullups sind auch dran. Es ist komisch weil ich mir fast sicher bin das 
das Programm genau so vorher an einem anderen Testboard funktioniert 
hatte welches ich nicht mehr zur Verfügung habe.
Gast #2152771
Lesenswert?

Oh, mir ist gerade aufgefallen das ich doch nicht 0 zurück bekomme.. 
dann läuft also schon etwas beim i2c_start schief.

Meine Adresspins sind übrigens alle auf GND

hmm.. ich versteh es nicht

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren