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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.