Eigentlich wollte ich ohne eine fremde Bibliothek auskommen. Da zu einem mir eigentlich die Sache klar und logisch schein, sowohl als in eueren Wikis, als auch in meine Büchern.
Werde mir aber dennoch mal die Bib. zu gemüte führen, vielleicht werde ich dort schlauer.
EDIT (20:54):
Ich habe nun den Code von Fleury und mir vergliechen:
hier der Code zum Schreiben von Fleury:
Code:
unsigned char i2c_write( unsigned char data )
{
uint8_t twst;
// send data to the previously addressed device
TWDR = data;
TWCR = (1<<TWINT) | (1<<TWEN);
// wait until transmission completed
while(!(TWCR & (1<<TWINT)));
// check value of TWI Status Register. Mask prescaler bits
twst = TW_STATUS & 0xF8;
if( twst != TW_MT_DATA_ACK) return 1;
return 0;
}/* i2c_write */
und hier mein Code:
Code:
TWDR=0x14; // Zielregister laden
TWCR|=(1<<TWINT)|(1<<TWEN); // Zielreigster ansprechen
while(!(TWCR&(1<<TWINT)));
Der einzigste unterschied, dass Fleury den Status noch als Rückgabewert benutz, um zu signaliesieren, dass eine Übertragung erfolgreich war, oder nicht.
Lesezeichen