Hallo,
ich versuche ein I2C Bussystem zwischen 2 Arduino Nanos aufzubauen,
allerdings habe ich Probleme mit dem Code. Es sollen 2 Bytes vom Master
verschickt und vom Slave empfangen werden.
Die beiden Bytes sollen nur gesendet werden wenn ein Byte einen anderen
Wert hat als im vorherigen Programmablauf.
Mastercode
//I2C Ausgang
if (a == a1 && b == b1)
{}
else
{ //wire ausgang
Wire.beginTransmission(8); // transmit to device #8
Wire.write("a" ); // sends one byte
Wire.write("b" );
Wire.endTransmission();
}
a1 = a;
b1 = b;
Slavecode
void receiveEvent() {
int a = Wire.read();
int b = Wire.read();
}
Der Code vom Master wurde ohne Probleme Überprüft, beim Slave
wurde ein Fehler gefunden:
s51output_f_r_I2C:149:14: error: 'Wire' was not declared in this scope
int a = Wire.read();
^~~~
Bibliothek Wire in Version 1.0 im Ordner: C:\Program
Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.33.0_x86__mdqgnx93n4wtt\hard
ware\arduino\avr\libraries\Wire wird verwendet
exit status 1
'Wire' was not declared in this scope
Ich habe schon im Netz geschaut, weiß allerdings nicht was ich verändern
muss.
Ich bitte um Hilfe.
MfG Fabian
Ganzen code posten! Formatierung beachten!
Gast
#6274601
Helmut -. schrieb: > Ganzen code posten! Formatierung beachten! Und den Code in die Code-tags packen. https://www.mikrocontroller.net/articles/Formatierung_im_Forum
Der Komplette Code vom Slave:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | |
148 | |
149 | |
150 | |
Gast
#6274636
Normalerweise gehören die Includes ganz nach oben. Hinter > int zuendungan fehlt ein Semikolon. Die Funktion > void receiveEvent() benötigt einen Parameter vom Typ Integer. > blinkenrechts ist undefiniert
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.