Hallo, ich versuche 4 Datenbytes von einem ATMega8 mit der I2c-Bibliothek von Peter Fleury an einen ESP8266 auf dem Wemos-Board zu senden. Programmiert wird der ESP8266 mit der Arduino umgebung, also mit der Wire-Bibliothek. Der Master(ATMega) funktioniert einwandfrei. Gemessen mit Logic Analyzer. Der ESP Antwortet aber nicht. Außer "Start" gibt es keine Ausgaben. Auch keine ACKs. Ich nehme an, dass er vielleicht zu langsam sein könnte(?). Oder ich habe das Beispiel falsch verstanden. Code: Master(Ausschnitt):
1 | i2c_init(); |
2 | i2c_start( 0x02 ); // Adresse = 1; R/W = 0 -> write |
3 | i2c_write( 0 ); |
4 | i2c_write( 1 ); |
5 | i2c_write( 2 ); |
6 | i2c_write( 3 ); |
7 | i2c_stop(); |
Slave:
1 | #include <Wire.h> |
2 | |
3 | void setup() { |
4 | Serial.begin(9600); |
5 | Serial.println( "Start." ); |
6 | Wire.begin(1); |
7 | Wire.onReceive(receiveEvent); |
8 | }
|
9 | |
10 | void loop() { |
11 | delay(100); |
12 | }
|
13 | |
14 | |
15 | void receiveEvent(int howMany) { |
16 | Serial.println( "Event." ); |
17 | while (1 < Wire.available()) { |
18 | int c = Wire.read(); |
19 | Serial.print(c); |
20 | }
|
21 | int x = Wire.read(); |
22 | Serial.println(x); |
23 | }
|