AnwesenheitskontrolleTWI

OP (Firma: FHK) #2245551
Lesenswert?

Tach!
Vorhaben: Atmega2560 soll flux sämtliche Adressen im TWI- Adressraum 
(0-127) abklappern und vergebene Adressen mittels Auswertung des 
jeweiligen Ack registrieren.
Dachte, das wird ne drei- Minuten-Angelegenheit.

Bin ich völlig falsch davor?

Schleife:

i2c_start(addr);
if (TWCR & (1<<TWINT))   //wenn Ack vom Slave erfolgt
xyz(addr);               //Aktion ausführen
i2c_stop();
addr++;
Gast #2245613
Lesenswert?

> schmeisst und sagt "alles scheisse"/"kleiner Fehler".

Ok, alles scheisse.

> //wenn Ack vom Slave erfolgt

Grosser Fehler.

Hohl dir das Datenblatt und guck mal ganz genau wie
das TWI zu behandeln ist.
Da sind auch wunderbare Ablaufdiagramme drin.
Da wirst du Sehen das ein Check von TWINT nicht reicht.
Aber vermutlich hast den benötigten Rest ja in xyz(addr)
implementiert, wobei wir wieder bei der Zeile 42 währen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren