ESP32, zwei I2C Master implementieren

Gast #5664510
Lesenswert?
• ▲
▼
Hallo Leute,

ich hänge derzeit etwas daran auf einem ESP32 einen zweiten I2C Master 
zu implementieren. Hintergund ist, dass ich verschiedenen Sensoren 
zeitgetriggert auslesen möchte. Da jedoch die Auslesevorgänge der 
einzelnen Sensoren um zeilweise einen Faktor 15...20 schwanken kommt es 
vor, dass während des Lesevorgangs bei einem Sensor ein zweiter mehrfach 
gelesen werden muss. Daher die Idee zweier I2C Master.
Bietet mir die Wire Bibliothek eine Möglichkeit dazu? Habt ihr eine Idee 
wie ich das Ganze implementieren könnte?

Viele Grüße,
Sim
Gast #5664593
Lesenswert?
• ▲
▼
Den Link habe ich auch schon gefunden, allerdings bekomme ich jedes Mal 
die Fehlermeldung, dass Wire1 mehrfach definiert wurde.

libraries\Wire\Wire.cpp.o:(.bss.Wire1+0x0): multiple definition of 
`Wire1'

Diese Nachricht erscheint schon beim nackten Beispiel ohne weiteren Code 
drum herum. Habe folgendes Beispiel genutzt:

#include <Wire.h>
#define SDA2 2
#define SCL2 4

TwoWire Wire1=TwoWire(1);

void setup(){
  Serial.begin(115200);
  Wire.begin();
  Wire1.begin(SCL2,SDA2,100000);
}
Gast #5664675
Lesenswert?
• ▲
▼
Arduino will dir das Leben leicht machen und hat schon zwei Instanzen 
auf Vorrat angelegt.

Wire.cpp
1
TwoWire Wire = TwoWire(0);
2
TwoWire Wire1 = TwoWire(1);

Wire.h
1
extern TwoWire Wire;
2
extern TwoWire Wire1;

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.