TWI Interrupt

Gast #131659
Lesenswert?

Soweit ich mich erinnere wird der TWI Interrupt (assume AVR Mega) bei
jeder Aktion aufm Bus ausgelöst. Du musst in deiner ISR das
Statusregister TWSR auswerten, um die entsprechenden Reaktionen
durchzuführen.
Gast #131660
Lesenswert?

Bei den Megas mit voller TWI unterstützung wird zwar nach jedem
vollständigen Byte ein Interupt ausgelöst, wenn man jedoch als Slave
auf eine neue Nachricht vom Master wartet so generiert die Address
Match Unit erst bei Adressübereinstimmung (ausnahme General Call) mit
TWAR einen Interupt. Dieser Interupt kann dann sogar die MCU aus dem
Sleep Modus aufwecken.
Gast #131661
Lesenswert?

Jo, ich habe nicht genau gelesen ;-)
Ich meinte natürlich, dass in dem Fall, wenn die Addresse stimmt bzw.
ein General Call vorliegt, trotzdem mehrere Interrupts ausgelöst
werden. Es muss auf jeden Fall das Statusregister ausgelesen werden, da
der Inhalt des Datenregisters abhängig von der jeweils verursachenden
Kondition ist.

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