Wie sind eure I2C-Routinen aufgebaut?

Gast #1835622
Lesenswert?
• ▲
▼
Hallo,

ich versuche hier gerade, eine möglichst flexible I2C-Implementierung 
aufzustellen. Nach Einlesen in die I2C-Hardware meines Controllers bin 
ich mir jedoch nicht mehr so sicher, was die Flexibilität angeht :(

Mein konkretes Problem bezieht auf die verschiedenen Teilnehmer und 
deren Ansteuerung. Bei EEPROMs beispielsweise schreibt man ja die 
Adresse, und liest dann mittels RepeatedStart aus. Dann gibts 
Teilnehmer, die nur empfangen und nicht antworten können, oder 
Teilnehmer, bei denen nach mehreren Bytes eine aus mehreren Bytes 
bestehende Antwort erwartet werden kann. Und so weiter...

Wie sieht nun so eine Implementierung aus? Normalerweise würde ich einen 
Empfangs- und einen Sendebuffer verwenden. Bei nur einem 
Slave-Teilnehmer ist das ganze ja dann noch überschaubar, aber bei 
mehreren unterschiedlichen oder sogar bei Multimasterbetrieb? Da fällt 
mir als einziges eigentlich nur ein, mit diversen Flags zu arbeiten, die 
signalisieren, wie es "weitergeht".

Ralf

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.