N
Nicolas Nickisch
Guest
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
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