Also momentan komme ich nicht weiter
Ich bekomme anscheinend kein ack vom modul. Ich habe markiert an welcher stelle die i2c_start funktion verlassen wird.
Es ist alles richtig verlötet (leitungen und kabel sind geprüft) und die Adressierung stimmt auch.
Einstellungen am Modul sind 100kHz für den Takt ohne flusskontrolle pullups im modul sind auch eingeschaltet.
Code:
unsigned char i2c_start(unsigned char address)
{
uint8_t twst;
// send START condition
TWCR = (1<<TWINT) | (1<<TWSTA) | (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_START) && (twst != TW_REP_START)) return 1;
// send device address
TWDR = address;
TWCR = (1<<TWINT) | (1<<TWEN);
// wail until transmission completed and ACK/NACK has been received
while(!(TWCR & (1<<TWINT)));
// check value of TWI Status Register. Mask prescaler bits.
twst = TW_STATUS & 0xF8;
// An dieser Stelle springt er immer aus der funktion (mit dem return 1)
if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;
return 0;
}/* i2c_start */
Lesezeichen