# Zusammenfügen von Sketch

**URL:** <https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991>\
**Category:** Deutsch\
**Created:** [April 19, 2021, 10:04pm UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991 "2021-04-19T22:04:11Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ludwyk](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ludwyk/32/401583_2.png) [@ludwyk](https://forum.arduino.cc/u/ludwyk)\
**Post date:** [April 19, 2021, 10:04pm UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/1 "2021-04-19T22:04:11Z")

</div>

Wenn ich zwei oder mehrere Sketches zusammenfügen möchte, muss ich immer die setup () Funktion zusammen fügen, und dann die loop() Funktion zusammenfügen. Gibt's da eine Möglichkeit dem Compiler-Linker-Locater (oder wer auch immer dafür zuständig ist) mitzuteilen, dass er die setups zusamenhängt und dann auch die loops zusammenhängt? Oder muss ich da immer eine Library erstellen wenn ich schon funktionierende Teile in verschiedenen Programmen zusammen hängen möchte?

Tab1Programm1  
BereichSetup  
void setup(){  
#Initialisierung von Programm 1  
}  
BereichLoop  
void loop(){  
#Anweisungen von Programm 1  
}  
############################  
Tab2Programm2  
#BereichSetup  
void setup(){  
#Initialisierung von Programm 2  
}  
BereichLoop  
void loop(){  
#Anweisungen von Programm 2  
}

Ich wünsche mir, dass die Bereiche mit gleichem Namen zusammengeführt werden. Geht das?

---

<div class="post-metadata">

**Author:** ![Serenifly](https://avatars.discourse-cdn.com/v4/letter/s/73ab20/32.png) [@Serenifly](https://forum.arduino.cc/u/Serenifly)\
**Post date:** [April 19, 2021, 10:15pm UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/2 "2021-04-19T22:15:32Z")

</div>

Du kannst den Code doch auch in _eine_ loop() Funktion schreiben

Oder du machst zwei normale Funktionen draus die in loop() aufgerufen werden

---

<div class="post-metadata">

**Author:** ![michael\_x](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/michael_x/32/628623_2.png) [@michael\_x](https://forum.arduino.cc/u/michael_x)\
**Post date:** [April 19, 2021, 10:20pm UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/3 "2021-04-19T22:20:17Z")

</div>

setup und loop sind zwei Funktionsnamen, die du je _einmal_ definiert haben _musst_. Die Arduino IDE fügt dazu eine Funktion, die _vereinfacht_ so aussieht

```cpp
int main() {
   setup();
   while (1) { loop(); }
   return 0; // kommt nie hierher
}

```

Du kannst natürlich deine zwei setup - Funktionen in setup1 und setup2 umbenennen und eine dritte hinzufügen:

```cpp
void setup() {
   setup1();
   setup2();
}

```

Das wird nur nicht richtig sein, wenn z.B. in beiden ein  
`Serial.begin()`  
vorkommt. Das brauchst du nur einmal , und kann auch nur für beide Teile die gleiche Geschwindigkeit vorgeben.

Ein bisschen überlegen musst du also in jedem Fall, aber wenn dein Sketch aus unabhängigen Teilen besteht, spricht nichts dagegen, das Generelle in `setup()` zu packen und die spezifischen Teile in eigene Funktionen, evtl. gar in eigene Tabs, auszulagern, die dann in setup() nur aufgerufen werden.

`loop` kannst du natürlich genauso behandeln.

---

<div class="post-metadata">

**Author:** ![ludwyk](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ludwyk/32/401583_2.png) [@ludwyk](https://forum.arduino.cc/u/ludwyk)\
**Post date:** [April 19, 2021, 11:51pm UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/4 "2021-04-19T23:51:03Z")

</div>

Danke für den Ansatz mit  
void setup(){  
setupProgramm1(); //aus Programm1  
setupProgramm2(); //aus Programm2  
setupProgramm3(); //aus Programm2  
. . .  
}

das hilft schon sehr, und benötigt weniger umschreiben. Freilich, wie du sagst dürfen sich in allen Programmen sich nicht widersprechende Anweisungen stehen, wie z.B. Busgeschwindigkeiten oder Verwendung von IO-Ports.  
Muss ich nur einmal dieses generelle Programm schreiben und alle anderen darin einhängen.

---

<div class="post-metadata">

**Author:** ![MicroBahner](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/microbahner/32/238923_2.png) [@MicroBahner](https://forum.arduino.cc/u/MicroBahner)\
**Post date:** [April 20, 2021, 8:48am UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/5 "2021-04-20T08:48:28Z")

</div>

Das derartige einfach Zusammenkopieren von Sketchen funktioniert aber nur, wenn die von Anfang an darauf ausgelegt wurden - z.B. blockadefrei programmiert sind.  
Ganz allgemein geht das nicht so ohne weiteres - zumindest funktioniert der kombinierte Sketch am Ende evtl. nicht, auch wenn es keine Fehlermeldungen vom Compiler gibt.

---

<div class="post-metadata">

**Author:** ![Rentner](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/rentner/32/601027_2.png) [@Rentner](https://forum.arduino.cc/u/Rentner)\
**Post date:** [April 20, 2021, 10:07am UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/6 "2021-04-20T10:07:48Z")

</div>

Hallo,  
zudem wird es in vielen Fällen zu Konflikten mit gleichen Variabelnamen geben. Zumindest mit denen die im globalen Teil definiert werden und das sind ja oft nicht wenig.  
Heinz

---

<div class="post-metadata">

**Author:** ![uwefed](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/uwefed/32/213736_2.png) [@uwefed](https://forum.arduino.cc/u/uwefed)\
**Post date:** [April 20, 2021, 11:12am UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/7 "2021-04-20T11:12:31Z")

</div>

Auch ich sehe das einfache "zusammenkopieren" von Sketchen als oft nicht machbar an, da verschiedenen Sketche oft gleiche Resourcen brauchen.  
Der Sketch muß durchdacht sein und darum wahrscheinlich anders funktionieren wie die 2 einzelnen Teilsketche. Es verbietet keiner Teile eines Sketches in einen anderen zu kopieren bzw Teile des einen mit Teile des anderen zusammenzukopieren. Eine sinnvolle und funktionale Sache wird daraus erst wenn man das vorher plant. Außerdem sollte man bestimmte Aktionen als Funktion programmieren und so kann man die Funktion einfach übernehmen. Die Aufrufe müssen dann je nach Funktionalität dann anders erfolgen damit der resultierende Sketch all das macht was er soll.

Grüße Uwe

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [August 18, 2021, 11:12am UTC](https://forum.arduino.cc/t/zusammenfugen-von-sketch/850991/8 "2021-08-18T11:12:49Z")

</div>

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.
