Hallo an alle

i2c_start() funktioniert. Nur bei der Receive Routine hakt es. Ich hab Acked und Nacked getrennt.

Ich hab nach jedem Befehl eine Lcd Ausgabe eingeführt, um zu sehen wo es hakt.

Hier der Code:

Code:
int i2c_read_ack(void)
{
lcd_putc('1');
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
lcd_putc('2');
while(!(TWCR & (1<<TWINT)));
lcd_putc('3');

if(!(TWSR & 0x50))
{
lcd_putc('4');
return -1;
}
lcd_putc('5');
    return TWDR;

}
Das ist die Funktion mit Acknoledgement. Am Display wird aber nur 12 angezeigt.

Es hängt also bei while(!(TWCR & (1<<TWINT)));

Weiß irgendwer, was da falsch sein könnte. Ich hab je´tzt echt keinen Plan mehr

Danke im Voraus

Gruß Robert