Hi NG, bie meinem ATMEGA16 wird intensiv der TWI genutzt.
Insbesondere erfolgt alle 100ms ein Interrupt und in der Interrupt-Routine wird wiedrum auch der TWI genutzt. Es ist also möglich, dass während der Übertragung (es werden immer viele Bytes an ein LCD-Display übertragen) der Interrupt kommt und der ATMEGA den TWI für etwas anderes nutzen will. Ich störe also gelegentlich eine laufende Übertragung.
Wie kann ich nun feststellen ob sich der TWI gerade in Benutzunng befindet ? Aktuell benutze ich eine globale Variable, die den Status wiedergibt.
Kann ich auch den TWSR benutzen ? Der STatus code $F8 erschien mir geeignet - er besagt wohl "nothing to do". Das Manual hört sich allerdings so an, als könne der TWSR auch zwischendrin diesen Code annehmen, obwohl der Übertragungsvorgang läuft.
Hat jemand eine Idee ?
Gruss Nico