Also momentan komme ich nicht weiterIch 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 */







Zitieren
Lesezeichen