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++;
> 17:20: > [etwas Quellcode] > 17:36: > und keener schreibt :( in < 16 Minuten kann man eigentlich nur sagen: Dein Fehler ist in Zeile 42.
Ich hatte darauf gehofft, dass jemand, der sich mit TWI auskennt, nur einen Blick auf if (TWCR & (1<<TWINT)) do... schmeisst und sagt "alles scheisse"/"kleiner Fehler".
> 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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.