www.mikrocontroller.net

Forum: Compiler & IDEs App Note AVR311 (TWI-Slave)


Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat sich zufällig jemand einmal die Arbeit gemacht, die App Note AVR311 
für den GCC Compiler zu portieren? Der Code wurde ja für IAR 
geschrieben.
Oder hat gar jemand eine schlankere Slave Library in Benutzung?

Für den Master nutze ich die Library von Peter Fleury, und bin mit 
dieser eigentlich zufrieden.

Folgende Funktionalitäten aus dieser nutze ich:
i2c_start_wait(adr+I2C_WRITE);
i2c_write(byte);
i2c_stop();
i2c_start(adr+I2C_READ);
byte = i2c_readAck();
i2c_stop();

Nun benötige ich auf dem Slave die Funktionen, welche darauf reagieren. 
Diese sollten ja eigentlich nur einen Bruchteil der AVR311 ausmachen.

Viele Grüße

Edit: das habe ich jetzt gefunden: 
Beitrag "TWI/I2C Atmega32 <-> Atmega8 mit AVR311 & AVR315". Das scheint fehlerfrei 
zu compilieren. Aber eine schlankere Variante wäre mir eigentlich 
lieber.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir da letztens meine eigene Implementierung geschrieben.
In erster Linie ist das eine state machine, die in der TWI-ISR
abgearbeitet wird, und die in Abhängigkeit vom aktuell gültigen
TWSR dann die Statusübergänge organisiert.  Nebenläufig tickt dann
ggf. eine zweite state machine los, die eine (bzw. mehrere) ADC-
Messungen anleiert.

Ich könnte mir gar nicht so recht vorstellen, warum man dafür
jeweils noch extra Funktionen implementieren will; der eigentliche
Aufwand liegt doch darin zu verwalten, dass die verschiedenen
Zustände ordentlich ineinander übergehen, unabhängig davon, was
der master denn gerade genau von einem will (und der darf so ziemlich
alles wollen, egal wie unsinnig es ist — man muss dann halt mit der
passenden Antwort aufwarten).

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest du deine Implementierung bitte mal hochladen? Wie gesagt die 
App Note von Atmel ist mir eigentlich viel zu groß und unübersichtlich, 
für dass, was ich möchte.
Nur um mir etwas eigenes zu schreiben bin ich noch nicht gut genug mit 
dem I2C Protokoll vertraut. Da müsste ich mich erst noch einarbeiten.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florentin S. schrieb:
> Könntest du deine Implementierung bitte mal hochladen?

Naja, veröffentlichungsreif finde ich das nicht.  Du hast Post.

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.