Gast
#156787
Hallo, habe schon im Forum gesucht, aber nix passendes gefunden :/ Ich möchte meinen DS1621 (Temperatursensor) auslesen. Ich möchte dazu den Hardware I2C verwenden. Das senden der Steuerbefehle klappt und keine Fehler entstehen. Nachdem ich nun die Steuersignale gesendet habe, soll der Sensor nach Spezifikation die Daten senden (tut er auch in einer anderen Schaltung ohne ATmega). Nur wie wird das mit dem ATmega realisiert? Code (eigene Funktionen, avr-gcc): i2c_start(); // start i2c_sendaddress(144); // adresse chip i2c_sendbyte(0xAA); // Befehl: sende Temperatur i2c_repeatedstart(); i2c_sendaddress(144 | 1);// nochmal adresse + READ ->nächstes Byte lesen // ab hier wahrscheinlich fehlerhaft TWCR = 1<<2 || 1<<6; // sende ACK nach empfang von Daten while(!(TWCR & 128)) // warten auf empfang von Daten ; i = TWDR; // i ist hier leider 145 (Adresse + READ) :( i2c_stop(); // stop Habe das Datenblatt gewälzt, aber bestimmt was übersehen :( Jemand nen Tip? Vielen Dank!