www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI Interrupt


Autor: Andreas Mader (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wird beim TWI der Interrupt im Slave Modus nur ausgelöst, wenn die
Slave Adresse stimmt oder wird zuerst allgemein der Interrupt ausgelöst
und dann erst die Adresse kontrolliert?

Danke für Antworten!

mfg Andi

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die ganz neuen Megas haben sogar glaub ich die Möglichkeit auf
Adressgruppen als Slave Address zu triggern.

Autor: Mader Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke! Ich habe einen Mega 8 und einen Mega 16! Wie schauts bei denen
aus? Bekomme ich nur einen Interrupt wenn die Slaveadresse stimmt?

mfg Andi

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm... und was hindert dich daran diese Frage durch Lesen des M16/M8
Datenblattes (kapitel Address Match Unit und Control Unit) dir selbst
zu beantworten?

Autor: Mader Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke - habs aber zuerst nicht gefunden im Datenblatt!

Stimmt es, dass er jedesmal einen Interrupt auslöst (hätte ich aus dem
Datenblatt gelesen)?

Danke

mfg andi

Autor: Kupfer Michi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hast du dir die Atmel Notes AN311 und AN315 schon durchgelesen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.