ich hab jetzt den Code ein wenig erweitert...jetzt bleibt der Master nicht mehr hängen, wenn er eine nicht vorhandene Addresse versucht anzusprechen:
es muss noch eine unsigned char Variable namens errcounter deklariert werden
Code:
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
while(!(TWCR & (1<<TWINT))) {
errcounter++;
if(errcounter==10){errcounter=0; break;}
}
TWDR = addr; //addr = Zieladdresse
TWCR = (1<<TWINT) | (1<<TWEN);
while(!(TWCR & (1<<TWINT))) {
errcounter++;
if(errcounter==10){errcounter=0; break;}
}
TWDR = data;
TWCR = (1<<TWINT) | (1<<TWEN);
while(!(TWCR & (1<<TWINT))) {
errcounter++;
if(errcounter==10){errcounter=0; break;}
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
die If-Abfragen kann man sich bei Bedarf ja selbst reinschreiben
Lesezeichen