Ich und zwei Schulkollegen versuchen zwei ATmega8-Controllerboards mittels TWI(I²C-Bus) zu verbinden und jeweils als Master/Slave im Transmitter- bzw. Receiverbetrieb zu benutzen.
[I] Bisher klappte es nur in einer Richtung (MT SR bzw. MR ST). Kann uns jemand ggf. eine kleine Hilfestellung geben?
[II] Bislang funktioniert es nur mit einem Slave. Einen zusätzlicher Slaveboard bzw. veränderte Slave-Adresse schlug fehl. Vielleicht hat dahingehend jemand auch eine geistreiche Inspiration für uns?!?
Ich danke schonmal im voraus!
MFG Ho
Hallo,
kann ja viele Ursachen haben …
Wie sieht es denn mit den Pull-Up-Widerständen aus?
Umfangreiche Infos findet ihr in Abschnitt 21.2 in folgedem kleinen Dokument:
http://www.atmel.com/dyn/resources/prod_documents/do…
Hier noch ein kleines Code Beispiel:
#define REGISTER_INPUT (0)
int gpio_read(int address) {
int data = 0;
// Send input register address
Wire.beginTransmission(address);
Wire.send(REGISTER_INPUT);
Wire.endTransmission();
// Connect to device and request two bytes
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);
if (Wire.available()) {
data = Wire.receive();
}
if (Wire.available()) {
data |= Wire.receive()
aus
http://www.neufeld.newton.ks.us/electronics/?p=241
Unter den Stichworten „arduino i2c“ findest ihr im Netz viele Beiträge, aus denen ihr sicher das eine oder für euer Projekt übernehmen könntet.
mfg
tf