Forum: Compiler & IDEs Hilfe bei meinem DS1621 Problem am ATmega16


von Oliver S. (Gast)


Angehängte Dateien:

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

von Mani (Gast)


Lesenswert?

Was bekommst Du denn von i2c_start() zurück?
Ist der DS1621 überhaupt erreichbar?

Häufiger Fehler: Hast Du die externen Pullups dran?

Grüße
Mani

von Oliver S. (Gast)


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.

von Oliver S. (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.