Arduino IDE zwei Sketche

OP (Firma: Da) #7151401
Lesenswert?

Gibt es eine Möglichkeit für ein Projekt das mit mehreren Prozessoren 
arbeitet die einzelnen Projekte durch "umschalten" auszuwählen?

Ich würde gerne den Sourecode vom Arduino UNO und einen STM32 Nucleo 
durch Auswählen des Bords auswählen.

Da beide Targets ein Hardware-Projekt ist, würde ich somit gerne beide 
Projekte als getrennte Sourcen in einem Sketch arbeiten.

Kann mir jemand bitte helfen welche Vorgehensweise ich machen muss?

Ich habe mit
#if defined(_AVR_ATmega328_)
#endif

zuerst versucht den entsprechenden Code zu verwenden. aber die 
precomp-direktive klappt nicht.
OP (Firma: Da) #7151698
Lesenswert?

Joachim B. schrieb:
> Content B. schrieb:
>> klappt nicht
>
> klappt doch, nur muss man es richtig machen
>
> entweder #if defined(AVR)
> oder #if defined(ESP32)
> oder #if defined(AVR_ATmega1284P)
>
> fehlt evtl. das P?
> #if defined(AVR_ATmega328P)

Joachim B. schrieb:
> fehlt evtl. das P?


Nein, das geht eben nicht! Ich kann durch einfaches Serial.println("Chip 
1"); bzw Serial.println("Chip 2"); die unterscheidlichen Boards 
differenzieren. Aber beim Einbinden der .h gibt es dann Fehler wie die 
Meldung dass etwas nicht existiert. Entferne ich dann das andere 
Projektteil, lasse aber die #if defined stehen, so klappt es. Sobald 
jedoch ein Code beim anderen hinzu kommt, geht das compile shief
#7151839
Lesenswert?

>Aber beim Einbinden der .h gibt es dann Fehler wie die
>Meldung dass etwas nicht existiert.

Zeig mal ein konkretes Beispiel.
Du musst die Files einbinden, die zum jeweiligen Prozessor passen.
Das kannst Du mit den Beispielen von Joachim tun.

Wenn du die zwei Hacken

Datei->Voreinstellungen->Ausfürhliche Ausgabe "Kopilierung" + 
"Hochladen"

setzt, siehst du auch, welchen Syntax die Compile-Switches tasächlich 
haben.
Gast #7152576
Lesenswert?

Das wird nicht funktionieren! So einen Plan hatte ich auch schon. Habe 
auf einem Projekt zwei uC (ESP und AVR). Der Precompilerbefehl

#if defined(_AVR_ATmega8_)
#endif

#if defined(ESP32)
#endif

funktioniert nicht wenn man einen ganzen Sketch rein kopiert.

Bei mir war es plötzlich der Fehler dass die #include "SPIFFS.h" nicht 
funktionierte. Vermutlich ein Bug der IDE.

Also falls jemand eine Lösung hat wäre ich auch dankbar.
#7152594
Lesenswert?

Ich würde dir empfehlen, das Projekt auf platformio (mit 
framework=arduino) umzustellen.

Da kannst du dann verschiedene "envs" für deine Prozessoren anlegen, 
wenn nötig mit "src_dir=..." auch jeder CPU einen eigenen Satz an 
Sources verpassen, und trotzdem das ganze auf einen Rutsch 
durchkompilieren.

https://docs.platformio.org/en/stable/projectconf/index.html

Als Bonus kriegst du deine Dependencies versioniert, es kann also nicht 
ein ungeplantes Library- oder Arduino-Core-Update dein Projekt 
lahmlegen.
OP (Firma: Da) #7208218
Lesenswert?

Guten Abend,

ich habe nun es geschafft meine zwei Sketche in eines einzubinden. Es 
war sehr kompliziert  für mich, aber am Ende gab es einen ganz einfachen 
Grund:
1
{
2
}


Εrnst B. schrieb:
> Ich würde dir empfehlen, das Projekt auf platformio (mit
> framework=arduino) umzustellen.

Sorry, aber du hast es leider nicht kapiert! Wenn die Farbe an der Wand 
nicht haftet, kaufst du auch kein neues Haus. Also weshalb so ein 
besheuerter Vorschlag?
#7208390
Lesenswert?

Content B. schrieb:
> Sorry, aber du hast es leider nicht kapiert!

Hast du dir Platformio überhaupt angesehen?
Damit kannst du Arduino-Code Schreiben/Compilieren, Arduino-Bibliotheken 
verwenden und auch sonst alles machen, was dir die Arduino-IDE 
ermöglicht.

PLUS: Du kriegst eine vernünftige, gut versionierbare Verwaltung von 
Build-Environments, verschiedenen Targets/Boards, Bibliotheken usw.

IAW: So wie ich dein Problem verstanden habe, ein perfektes Werkzeug für 
dich.

Aber ich will dir da nichts einreden, mit einem Hammer kriegt man die 
Schraube ja auch irgendwie in die Wand.
OP (Firma: Da) #7220538
Lesenswert?

Εrnst B. schrieb:
> Content B. schrieb:
>> Wieso sollte ich? Es ging um Arduino!
>
> Deshalb habe ich es vorgeschlagen.
> Das Arduino/Wiring-Framework ist nicht mit der Arduino-IDE verheiratet.

Nur der Vollständigkeit halber:

Im Beruf nutze ich PlatformIO und da kann ich diese Sketche so nutzen. 
Privat würde ich gerne das selbe auch mit der Arduino-IDE können. Dein 
Vorschlag, ich solle PlatformIO nutzen ist daher für die Tonne, da es 
dich überhaupt nicht zu interessieren scheint wieso ich das so will.
Gast #7220848
Lesenswert?

Content B. schrieb:
> Im Beruf nutze ich PlatformIO und da kann ich diese Sketche so nutzen.
> Privat würde ich gerne das selbe auch mit der Arduino-IDE können. Dein
> Vorschlag, ich solle PlatformIO nutzen ist daher für die Tonne, da es
> dich überhaupt nicht zu interessieren scheint wieso ich das so will.

Du bist aber unfreundlich. Fragst nach Ideen, und wenn Ideen kommen, die 
du auch ablehnen kannst und darfst, wenn es dir nicht passt, fährst du 
Menschen persönlich an. Menschen lesen über dein Scheißproblem, 
investieren Zeit und wollen dir helfen. Aber dir ist nicht mehr zu 
helfen. Und das hat mit Arduino nicht mehr zu tun.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren