Hallo
Vieln Dank für deine Antwort.
Es ist mir gerade gelungen die Chip ID auszulesen: 0b010 
Wenn du dem Sensor die Masse wegnimmst, kann er logischerweise nicht antworten, da er für's ACK ja auf Masse ziehen muss, die dann ja fehlt
Das habe ich gemacht um zu sehen, dass acuh wirklich der Sensor mit mir redet und das ACK nicht sonstwoher kommt 
Jetzt gehts daran schöne, nutzerfreundliche und schnelle Funktionen zu schreiben.
Aber ein Problem habe ich da noch.
Und zwar muss ich trotz der Überprüfung des Statusregisters nach dem Start und nach dem Senden warten, damit alles funktioniert (_delay_ms (1)
Ich habe die Startfunktion ein wenig umgeschrieben, aber das bringt auch nichts:
Code:
void i2c_start()
{
TWCR=0b10100100; //TWEN, TWSTA und TWINT; unschön, aber geht ;)
while(!( TWSR ==0x08 || TWSR==0x10 )) ; //warten bis fertig start oder repeated start
_delay_us (10); //Ohne delay geht es momentan nicht
}
Also nach dem Senden muss ich erst auf TWINT warten und dann auf das ACK ?
Ich habe gerade gesehen, dass es 2 Register gratis dazu gibt 
2 Ungenutzte Register, in die man schreiben kann, was man will, 2Byte Speicher umsosnt!
Gruß
Olaf
Gruß
Olaf
Lesezeichen