Ok das Bild scheint verschwunden zu sein, danke Imageshack. Wie dem auch sei, ich hab nochmal etwas rumgebastelt und realisiert, dass Clock Stretching im Write-Befehl ja eigentlich gar nicht vorgesehen ist. Der Grund dafuer, dass meine Daten nicht so ankommen wie gedacht ist, dass (vorrausgesetzt ich clocke langsam genug) beim 3. Byte einfach die Clock aufhoert nach dem 7. Bit. Sobald dann SDA auf High geht, ergibt sich daraus eine Stopp-Bedingung, die Uebertragung ist beendet und total vor die Wand gefahren. Ich hab aber keine Ahnung wieso die so einfach aufhoert. Stretching kann es nicht sein, weil dann der Clock auf Low gehalten werden muesste.
Interrupts passieren auf dem Controller auch keine, der nur mit Software-I2C beschaeftigt. Vorsichtshalber hab ich auch den Sende-Code in CLI und SEI gekapselt:
Hier das Bild dazu:Code:cli(); i2c_start(0x32 + I2C_WRITE); i2c_write(0xE1); i2c_write(0x42) i2c_stop(); sei();
Bild hier
Achso, und wieso statt dem E1 ein C3 ankommt, hab ich fast schon aufgegeben zu verstehen...
Lesezeichen