www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI- Master im Interrupt ausführen?


Autor: Nop M. (gtf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Community,
für den TWI- Master Modus gibt’s Beispiele wie Sand am Meer. Doch leider 
konnte ich nichts zum Thema Master im Interrupt-Modus finden.

Hat jemand von euch schon so was umgesetzt?
Ist es überhaupt möglich, oder sind die TWI- Interrupts nur für den 
Slave Modus interessant?

;---------------------------------------------
µController Atmega 8,16,32,128

Bitte um Hilfe !!

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex L. schrieb:
> Hallo Community,
> für den TWI- Master Modus gibt’s Beispiele wie Sand am Meer. Doch leider
> konnte ich nichts zum Thema Master im Interrupt-Modus finden.
>
> Hat jemand von euch schon so was umgesetzt?

Ja. Ich gehe davon aus, daß du einen AVR meinst.

> Ist es überhaupt möglich, oder sind die TWI- Interrupts nur für den
> Slave Modus interessant?

Funktioniert prächtig als Master. Einen Slave habe ich noch nicht 
implementiert, das geht aber auch.

Autor: Nop M. (gtf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uhu Uhuhu schrieb:
> Ja. Ich gehe davon aus, daß du einen AVR meinst.
Jep ein AVR ist damit gemeint, aber eigentlich geht’s mir nur darum das 
Prinzip zu verstehen.

> Funktioniert prächtig als Master. Einen Slave habe ich noch nicht
> implementiert, das geht aber auch.

hast du dazu Programmablaufpläne oder Beispielcodes?
Für mich ist es unklar, wie die einzelnen Aktionen ausgeführt werden
sollen?
Kein plan :- )

Autor: GG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

diese Lib ist super, i2c mit Interrupt.

http://hubbard.engr.scu.edu/embedded/avr/avrlib/do...

Gruß GG

Autor: Nop M. (gtf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GG schrieb:
> Hallo,
>
> diese Lib ist super, i2c mit Interrupt.
>
> http://hubbard.engr.scu.edu/embedded/avr/avrlib/do...
>
> Gruß GG

Danke für den Link, leider kann ich nicht so gut C.  Soweit ich's 
verstanden habe sind da nur die Routinen(Funktionen) enthalten, aber 
kein konkretes Beispiel zur Anwendung.
>----------------------------------------------------------------------
>----------------------------------------------------------------------
Ich möchte im Master Transmitter Modus ein Byte an den Slave übertragen.
Protokoll: Start | SLA+W | 0x01 | Stop

Und im Master Receiver Modus paar Bytes empfangen.
Protokoll: Start | SLA+R | 0xXX | 0xXX |  Stop

Ist ja an sich kein Problem, solange dies nicht im Interrupt geschieht, 
da kann man schön gemütlich aufs TWINT- Flag warten.

Doch wie realisiert man das ganze im Interrupt?
Hat jemand eine Idee?
Gute Nacht und bis Morgen.

Autor: gtf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow soviele Vorschläge :-)

Hallo kann mir den keiner weiterhelfen?

Oder sind hier nur C- Kinder die auf ihren Funktionen rumtrampeln? :- ) 
(spaß)

Autor: gtf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Community,
schade dass mir keiner Helfen konnte.  Inzwischen sind ca. 4 Tage flöten 
gegangen, bis ich selber eine optimale Lösung finden konnte.

Das Problem war:
Interrupt gesteuerte  TWI- (IIC) Masterfunktionen im ASM. (Beitrag:TWI- 
Master im Interrupt ausführen).

Als äußerst hilfreich erwies sich die Application Note von ATMEL:
;--------------------------------------------------------------
 AVR315: Using the TWI module as IIC Master
;--------------------------------------------------------------

Die im Dokument erwähnten Beispiele beziehen sich auf die 
Programmiersprache C.
Zu jeder Funktion gibt es ein ausführliches Flowchart, weshalb die 
Umsetzung in ASM. nicht all zu schwer war.

Trotzdem vielen dank für eure Unterstützung.
Gruß gtf

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.