hallo; wenn man ganz "normal" die Arduino IDE benutzt mit void setup und void loop wird ja die int main(void) aus der main.cpp aufgerufen, die dann setup() und loop() aufruft. Jetzt kann man ja statt void setup und void loop selber eine int main() eingeben in die Arduino IDE. Frage: wie wird denn das gesteuert dass dann die eigene int main aufgerufen wird und nicht die aus der main.cpp ?
Das tut der Arduino Builder. Hier nachzulesen, wie sich das abspielt: https://arduino.github.io/arduino-cli/0.20/sketch-build-process/
Auf der angegebenen Seite wird die main.cpp mit keiner Silbe erwähnt.
Von mir aus... Dennoch ist es der Builder, welcher prüft, ob du eine eigene main() gebaut hast und dementsprechend agiert. Wenn du wissen möchtest wie er das genau tut, müsstest du wohl in seinen Quellcode schauen. Auch der liegt öffentlich aus.
weiss jemand wo genau der Code des Builders abgespeichert ist ? Also der Builder prüft ob der eigene Sketch eine int main() hat und verwendet diese, ansonsten verwendet er die int main() aus der main.cpp und hängt den Code des eigenen Sketches hintendran ? Die main.cpp kann man ja ganz leicht selber abändern. Wo ist denn der Code des Builders gespeichert ? den müßte man ja ebenfalls leicht ändern können oder ?
:
Bearbeitet durch User
Michael S. schrieb: > Wo ist denn der Code des Builders gespeichert ? den müßte man ja > ebenfalls leicht ändern können oder ? Du musst nichts ändern, wenn die main-Funktion in dem c++ Unterbau als weak definiert wurde. Alternativ nennst du deine main-Funktion eben my_main() und rufst die einfach im setup() selber auf. Oder eben im loop()... Funktioniert, weil deine my_main() hoffentlich auch nie zurückkehrt ;) mfg mf
Ich möchte einfach nur ganz genau die Stelle sehen, an der entschieden wird, ob die eigene int main oder die vom main.cpp genommen wird. weiss jemand wo genau man diese Abfrage sehen kann ?
Michael S. schrieb: > Wo ist denn der > Code des Builders gespeichert ? den müßte man ja ebenfalls leicht ändern > können oder ? Warum sollte man das tun? PS: Den Code findest du auf github
der Code steht nicht in der ArduinoIDE, sondern im Core den man verwendet. Beim AVR zB: https://github.com/arduino/ArduinoCore-avr/blob/42fa4a1ea1b1b11d1cc0a60298e529d37f9d14bd/cores/arduino/main.cpp#L33-51
Achim M. schrieb: > wenn die main-Funktion in dem c++ Unterbau als > weak definiert wurde. Das scheint mir nicht der Fall zu sein. Zumindest finde ich es nicht im Core https://github.com/arduino/ArduinoCore-avr/blob/9f8d27f09f3bbd1da1374b5549a82bda55d45d44/cores/arduino/main.cpp Da ist einiges als weak deklariert, auch im weiteren Umfeld (den anderen Dateien). Aber main(), sehe ich nicht
Kann jemand den Source-Code finden und posten, in dem die Abfrage steht: wenn die IDE eine eigene int main enthält, verwende diese, ansonsten verwende die int main aus der main.cpp ?
das ist ja im include des Compilers bzw. der Runtime Lib weil main im Startup Code aufgerufen wird.
Michael S. schrieb: > Kann jemand den Source-Code finden und posten, da irgendwo in den 462 Treffern: https://github.com/arduino/arduino-cli/search?q=main
hat jemand Lust die Stelle zu finden, an der die Abfrage ist, ob eigene int main oder die aus der main.cpp ?
Solange nicht klar ist, welcher Core konkret gemeint ist, macht es keinen Sinn, mit der Suche zu beginnen. Der Richtige Ansatz wurde ja bereits genannt: J. S. schrieb: > da irgendwo in den 462 Treffern: > https://github.com/arduino/arduino-cli/search?q=main
vielleicht findet sich ja einer der genau weiss wo die Abfrage zu finden ist...
bau doch erstmal ein int main() in ein .ino oder .cpp ein und gucke was der Builder so meldet. Zumindest beim AVR muss der Builder das managen, zweimal main würde einen Linkerfehler geben. Und wenn es so ist, dann ist es doch egal wo und wie der Builder das macht.
:
Bearbeitet durch User
Michael S. schrieb: > Frage: wie wird denn das gesteuert dass dann die eigene int main > aufgerufen wird und nicht die aus der main.cpp ? Vermutlich ist die ›eingebaute‹ als weak deklariert. Wenn keine ›bessere‹ vorhanden ist, dann wird die per default genommen.
Ich möchte gar nicht rumsuchen oder vermuten oder Vermutungen anderer nachspüren sondern frage einfach ob es einer ganz genau weiss und mir sagen kann.
Beitrag #7330029 wurde von einem Moderator gelöscht.
J. S. schrieb: > bau doch erstmal ein int main() in ein .ino oder .cpp ein und gucke was > der Builder so meldet. Getestet, soweit erstmal möglich: So wie es aussieht wird die originale main.cpp auch kompiliert, wenn man eine eigene main() baut. Es kann also gut sein, dass dich weder beim Preprocessor, noch beim Builder irgendwas davon findet. Und doch stört den Linker das kein bisschen. Diese Indizien sprechen für "weak" (in welcher Form auch immer) Und dagegen, dass der Builder da irgendwas steuert.
Michael S. schrieb: > Ich möchte gar nicht rumsuchen ... sondern du möchtest dass dir gebratene Tauben in den Mund fliegen oder auf dem Silbertablett serviert werden. Mach weiter so, das ist das Salz in der Suppe hier im Forum.
Michael S. schrieb: > Ich möchte gar nicht rumsuchen oder vermuten oder Vermutungen > anderer > nachspüren sondern frage einfach ob es einer ganz genau weiss und mir > sagen kann. Du meine Güte, ist das denn so schwer? ---
1 | x1.cpp |
2 | #include <iostream> |
3 | int __attribute__((weak)) main(void) { |
4 | std::cout << "weak"; |
5 | return 0; |
6 | } |
---
1 | x2.cpp |
2 | #include <iostream> |
3 | int main(void) { |
4 | std::cout << "strong"; |
5 | return 0; |
6 | } |
---
1 | g++ -Wall -Wextra -pedantic -o "x" x1.cpp x2.cpp |
Was erscheint beim Aufruf: strong. Wenn man im x2.cpp die main umbenennt und erneut kompiliert: Was erscheint beim Aufruf: weak.
Michael S. schrieb: > Frage: wie wird denn das gesteuert dass dann die eigene int main > aufgerufen wird und nicht die aus der main.cpp ? Michael S. schrieb: > weiss jemand wo genau der Code des Builders abgespeichert ist ? Michael S. schrieb: > Ich möchte einfach nur ganz genau die Stelle sehen Michael S. schrieb: > Kann jemand den Source-Code finden und posten Michael S. schrieb: > hat jemand Lust die Stelle zu finden Michael S. schrieb: > vielleicht findet sich ja einer der genau weiss wo die Abfrage zu finden > ist... Michael S. schrieb: > Ich möchte gar nicht rumsuchen oder vermuten oder Vermutungen anderer > nachspüren sondern frage einfach ob es einer ganz genau weiss und mir > sagen kann. Sag mal, merkst du nichts mehr? Bewege deinen faulen Hintern selbst!
Also wird die eigene int main kompiliert und die main.cpp wird hintendrangehängt und mitkompiliert ? und die main.cpp ist "weak" und kann deshalb überschrieben werden ? das scheint mir jetzt mal ein Ansatz zu sein. aber hier ist meine main.cpp, da ist doch nichts "weak" an der int main oder ?
1 | #include <Arduino.h> |
2 | |
3 | // Declared weak in Arduino.h to allow user redefinitions.
|
4 | int atexit(void (* /*func*/ )()) { return 0; } |
5 | |
6 | // Weak empty variant initialization function.
|
7 | // May be redefined by variant files.
|
8 | void initVariant() __attribute__((weak)); |
9 | void initVariant() { } |
10 | |
11 | void setupUSB() __attribute__((weak)); |
12 | void setupUSB() { } |
13 | |
14 | int main(void) |
15 | {
|
16 | init(); |
17 | |
18 | initVariant(); |
19 | |
20 | #if defined(USBCON)
|
21 | USBDevice.attach(); |
22 | #endif
|
23 | |
24 | setup3(); |
25 | |
26 | for (;;) { |
27 | loop(); |
28 | if (serialEventRun) serialEventRun(); |
29 | }
|
30 | |
31 | return 0; |
32 | }
|
Michael S. schrieb: > aber hier ist meine main.cpp, da ist doch nichts "weak" an der > int main oder ? Die Interne ist ›weak‹, deine ist automatisch ›strong‹.
danke Norbert, du bist der einzige der meine Frage wirklich beantworten kann. Jetzt aber noch: wieso ist die interne automatisch weak ? wo ist das vermerkt ? hängt das mit dieser Zeile zusammen ?
1 | // Declared weak in Arduino.h to allow user redefinitions.
|
2 | int atexit(void (* /*func*/ )()) { return 0; } |
:
Bearbeitet durch User
Also ich habe den Arduino Code nicht, deshalb kann ich nicht nachschauen. Aber falls dieser Mechanismus benutzt wird, dann müsste irgendwo im Arduino Code eine ›main‹ als ›weak‹ definiert sein. Nur der Vollständigkeit halber: Es gibt noch eine weitere Möglichkeit. Das gesamte Arduino Gelumpe müsste kompiliert und in ein Archiv gesteckt werden (auch die interne ›main‹). Der Linker würde sich dann nur die Symbole aus dem Archiv holen welche NICHT in deinem Code zu finden wären.
ich habe den code meiner main.cpp doch gepostet ! Kann man dem entnehmen dass die int main weak ist ? eher nicht oder ? kann das ausserhalb irgendwo angegeben sein ?
Norbert schrieb: > Also ich habe den Arduino Code nicht, deshalb kann ich nicht > nachschauen. Das kann ich ändern. https://github.com/arduino/ArduinoCore-avr Norbert schrieb: > dann müsste > irgendwo im Arduino Code eine ›main‹ als ›weak‹ definiert sein. Dachte ich auch. Aber noch nicht gefunden. Norbert schrieb: > Es gibt noch eine weitere Möglichkeit. Das gesamte Arduino Gelumpe > müsste kompiliert und in ein Archiv gesteckt werden (auch die interne > ›main‹). Das geschieht allerdings! Alle *.o Dateien werden in eine *.a gestopft Und dann mit der *.ino.cpp.o gelinkt:
1 | "E:\\Programme\\arduino/portable/avr-gcc/avr-gcc-11.3.0_mingw32_binutils2.38/bin/avr-gcc" -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "E:\\temp\\Arduino/sketch_jan27a.ino.elf" "E:\\temp\\Arduino\\sketch\\sketch_jan27a.ino.cpp.o" "E:\\temp\\Arduino/core\\core.a" "-LE:\\temp\\Arduino" -lm |
hallo Norbert und EAF, ich bin nicht so ein Profi wie ihr. Was kann dem jetzt entnehmen ? Wie wird die interne main auf weak geschaltet ?
Michael S. schrieb: > Ich möchte einfach nur ganz genau die Stelle sehen, an der entschieden > wird, ob die eigene int main oder die vom main.cpp genommen wird. weiss > jemand wo genau man diese Abfrage sehen kann ? Wozu? Reicht es dir nicht, wenn du weißt, das deine eigene main() verwendet wird - egal warum?
Michael S. schrieb: > hallo Norbert und EAF, ich bin nicht so ein Profi wie ihr. Was > kann dem > jetzt entnehmen ? Wie wird die interne main auf weak geschaltet ? Gar nicht. Es gibt die oben zuerst gezeigte Möglichkeit das Ganze über ›weak‹ zu lösen, das macht Arduino anscheinend nicht. Oder über die später genannte und deutlich umständlichere Archiv Methode. Es deutet alles darauf hin, das Arduino die letztere Lösungsmöglichkeit nutzt.
Norbert schrieb: > die oben zuerst gezeigte Möglichkeit Anfangs war ich davon ausgegangen, dass der Builder das steuert. z.B. durch nicht mit kompilieren der main.cpp. Somit durfte ich eine Erkenntnis einsammeln. Meinen Dank.
So vielen Dank jetzt weiss ich Bescheid und habe neue Dinge gelernt die mich interessieren mich mit ihnen näher zu beschäftigen. Dann bedanke ich mich vielmals für die sehr qualifizierten Beiträge von EAF und Norbert.
Und ich habe gelernt, dass man mit Fragen welche nicht beantwortet werden können, das Ego von Leuten welche sich für sehr bewandert halten kränken kann. Und diese dann die Frage als sinnlos deklarieren oder was auch immer.
Hier kollidieren halt die Bedürfnisse unterschiedlicher Menschen aufeinander: - Leute, die etwas zügig ans Laufen bringen wollen/müssen - Leute, die sich nach Belieben in einzelne Details verstricken dürfen und woanders schlampig sind (z.B. weil Hobby) - Leute, die Details untersuchen müssen - Leute, die fleißig sind - Leute, die zu faul sind, selbst zu arbeiten Das es dabei zu Rangeleien kommt ist völlig natürlich.
Wenn ich an einem Projekt arbeite und eine konkrete Frage habe dann stelle ich diese Frage in diversen Foren und will so schnell wie möglich die richtige Antwort haben um an meinem Projekt weiterarbeiten zu können. Da will ich keine Aufforderungen, mir die Antwort selbst zu suchen, oder Vermutungen, die mich in die Irre führen. Da sollen eigentlich nur die Leute antworten, die die Antwort ganz genau wissen oder zumindest einen sehr begründeten Ansatz zum Weiterprobieren haben. So haben ja schließlich die Beiträge von Norbert und EAF genau zu der von mir gesuchten Lösung geführt. Ich will doch keine Zeit verplempern und irgendwelchen Aufforderungen nachgehen mir irgendwo selbst die Lösung zu suchen. Auf die eigentliche Lösung wäre ich ohne Norbert und EAF nie gekommen. Das Leben ist kurz. Schnell wirst du alt, eben warst du noch jung. Jetzt lachst du noch, doch schon bald bist du Dung.
was ist denn daran arrogant ? wir sind doch hier nicht im Kindergarten. Wer Fragen hat stellt sie und wer die Antwort hat sagt sie. Alles andere ist doch Blödsinn.
Du hast keinerlei Recht bestimmen zu können was hier irgendwer sagt! Null! Dein Verhalten zeigt starke egomanische und narzisstische Züge.
Normales Verhalten ist doch: jemand stellt eine Frage und wer die Antwort weiss oder eine begründete Ahnung hat wo sie zu finden ist teilt das mit. Was ist denn das für ein seltsames Verhalten, auf eine Frage zu antworten mit: suchs dir selber, warum willst du das überhaupt wissen und so weiter und so fort. das ist doch total unerwachsen und kann man sich doch sparen. Wer eine Frage liest und dazu keine Antwort weiss kann sich doch dem Thread fernhalten. Wie viel Langeweile muss man haben um stattdessen jede Menge Senf der Frage hinzuzufügen.
EAF schrieb: > Dein Verhalten zeigt starke egomanische und narzisstische Züge. Ja diese komischen Menschen die immer Fragen stellen und eine Antwort auf genau diese Frage erwarten. Und kein Interesse an an sinnlosen Palaver haben welches ihn nicht weiterhilft. Wann ist die Gesellschaft nur so abgedriftet, dass die Leute so eine hohe Erwartungshaltung bei zwischenmenschlicher Kommunikation bekommen haben.
Michael S. schrieb: > ... Ich rate zu einer Therapie, zumindest erstmal zu einer Anamnese, welche dann eine fundierte Diagnose ermöglicht.
Michael S. du verwechselst diese öffentliche Diskussions-Plattform mit einer Professionellen Beratung durch ein Ingenieurs-Büro. Die meisten Leute sind hier, um sich zu unterhalten, und nebenbei etwas zu lernen. Ich würde das mal mit einer Kneipe vergleichen, nur halt remote statt vis-à-vis. Professionelle Arbeit kannst du haben, aber nicht kostenlos. Du bist nämlich nicht der einzige, der mit seiner Arbeit das Leben finanzieren muss.
Wie ist eigentlich jetzt das Ergebnis zur Ursprungsfrage dieses Threads? Wo wird jetzt entschieden, welch "main" verwendet wird? Das ist der Unterschied von Stack-Overflow zum Mikrocontrollernetz: Ein vernünftige Zusammenfassung gibt es nirgends.
Gerd schrieb: > Das ist der Unterschied von Stack-Overflow zum Mikrocontrollernetz: Ein > vernünftige Zusammenfassung gibt es nirgends. Dann stelle die Frage halt bei Stack-Overflow und höre auf zu nerven.
Beitrag #7330814 wurde von einem Moderator gelöscht.
Gerd schrieb: > Wie ist eigentlich jetzt das Ergebnis zur Ursprungsfrage dieses Threads? 3 Möglichkeiten diskutiert 2 davon ausgeschlossen Nimm die Übriggebliebene.
Michael S. schrieb: > Wer Fragen hat stellt sie und wer die Antwort hat sagt sie. Alles andere > ist doch Blödsinn. Nein. Hier sind etliche Leute unterwegs, die die Antwort bestens kennen, aber den Fehler begehen, anzunehmen, daß der Fragende sich für das Thema interressiert und etwas lernen möchte. Die antworten daher auf eine Art und Weise, die dem Fragesteller ermöglicht, selbst herauszufinden, was er wissen will, indem sie ihn auf die richtige Fährte locken. Hätte der Fragesteller Interesse am Thema, würde er mit den Hinweisen selbst nachsehen und damit Dinge lernen, auch Dinge, die über die ursprüngliche Fragestellung hinausgehen. Der Fehler ist wie gesagt, davon auszugehen, daß der Fragesteller sich überhaupt für das Thema interessiert und auch noch lernwillig ist. Das ist aber aus der Mode gekommen, warum etwas lernen, wenn man auch irgendwo im Internet nachsehen kann? Wieso muss man überhaupt irgendwas wissen, etwas können, oder gar sich für etwas interessieren? Die arroganten alten Säcke in dem doofen Forum sollen doch einfach nur die konkrete Frage beantworten! Wir alten Säcke sollten uns ernsthaft Sorgen um unsere Rente machen, denn diese Generation Schlaffsacklusche wird die sein, die hoffentlich noch Beiträge in die Rentenkasse einzahlt ...
Wenn ich eine konkrete Frage habe dann möchte ich doch eine Antwort auf meine Frage bekommen und nicht oberlehrerhaft rumkommandiert werden wo ich gefälligst nachlesen und mir die Antwort selber erarbeiten soll. Warum meinen denn einige die anderen erziehen zu müssen ? Zum Glück gibt es ja genug sachliche Antworten die einem dann doch weiterhelfen.
Beitrag #7330967 wurde von einem Moderator gelöscht.
Wenn der Michael so weiter macht, wird er noch sehr viel Erfahrung mit Bewerbungsverfahren machen.
Michael S. schrieb: > Wenn ich eine konkrete Frage habe dann möchte ich doch eine Antwort auf > meine Frage bekommen und nicht oberlehrerhaft rumkommandiert werden wo > ich gefälligst nachlesen und mir die Antwort selber erarbeiten soll. Wenn so klar zu erkennen ist, daß Du die Antwort auf Deine Frage gar nicht verstehen kannst, ist es sinnlos, Dir eine präzise Antwort zu geben. Da Du Dich für das Thema überhaupt nicht interessierst, hat Du hier also schön viel Lebenszeit verschwendet, vonn all' denen, die Dir helfen wollten, und Deine eigene letztlich auch. Spiel halt irgendwelche Videospiele, oder fang mit dem Rauchen an, aber lass die Finger von Elektronik.
Michael S. schrieb: > Warum meinen denn einige die anderen erziehen zu müssen ? Zum Glück gibt > es ja genug sachliche Antworten die einem dann doch weiterhelfen. Also ich habe die Vermutung dass sie einfach dumm sind, und gleichzeitig eingebildet und arrogant, also können sie die Frage nicht beantworten, wollen aber trotzdem ihren Senf dazugeben. Also wird halt so komisches Palaver gehalten dass man es sich doch selbst erarbeiten soll, und anhand der teilweise fehlerhaften Vorschläge ist auch ersichtlich dass die von oben herab labernden Leute keine Ahnung haben. Ich fühle mich sehr gut unterhalten vielen Dank.
Ich persönlich finde Hilfe zur Selbsthilfe immer noch besser, als gar keine Hilfe. Wenn es so verlaufen wäre, wie der Michael S. es sich erbittet, hätte er noch gar keine Antwort erhalten.
So beantwortet ChatGPT deine Frage: " In der Arduino IDE wird standardmäßig die int main(void) aus der main.cpp aufgerufen, die dann setup() und loop() aufruft. Wenn man jedoch selbst eine int main() in die Arduino IDE eingibt, wird die main.cpp nicht mehr verwendet. Stattdessen wird die neue int main() verwendet, die man selbst erstellt hat. Dies wird durch das Überschreiben der main.cpp mit der neuen int main() erreicht. " Tja, sogar der intelligenteste Roboter der Welt kann dein Frage nicht zufriedenstellend beantworten.
Beitrag #7331032 wurde von einem Moderator gelöscht.
Ich hake nochmal nach: > Ich möchte einfach nur ganz genau die Stelle sehen, an der entschieden > wird, ob die eigene int main oder die vom main.cpp genommen wird. weiss > jemand wo genau man diese Abfrage sehen kann ? Antwort von ChatGPT: " Die Abfrage, ob die eigene int main oder die von main.cpp verwendet wird, findet in der Regel nicht explizit statt. Die Arduino IDE bietet die Möglichkeit, eigene Sketches (Programme) zu erstellen und diese hochzuladen. Wenn Sie einen Sketch erstellen, wird der Quellcode in die Arduino IDE eingefügt. Der Sketch wird dann übersetzt und auf den Arduino-Mikrocontroller hochgeladen. Wenn Sie eine eigene int main() in Ihrem Sketch haben, wird diese anstelle der int main(void) aus der main.cpp verwendet. Das Überschreiben der main.cpp mit der neuen int main() erfolgt automatisch,da die IDE den Sketch Code zusammenführt und auf den Controller hochlädt. Die Abfrage, ob die eigene int main oder die von main.cpp verwendet wird, findet in der Regel beim Hochladen des Sketches statt. Wenn Sie den Sketch hochladen, wird dieser automatisch übersetzt und anschließend auf den Mikrocontroller hochgeladen. Es gibt auch Fälle, in denen man eigene int main() in C++ Libraries verwenden kann, und diese dann in die Arduino IDE einbinden kann, und diese werden dann aufgerufen und nicht die main.cpp. In jedem Fall werden die Abfragen und der Prozess, der dazu führt, dass die eigene int main verwendet wird, in der Regel automatisch durch die Arduino IDE durchgeführt und sind für den Anwender nicht sichtbar. " Bewerte die Antwort selbst.
Beitrag #7331046 wurde von einem Moderator gelöscht.
FahrerVomFahrrad schrieb im Beitrag #7331032: > hatte > letztendlich zur richtigen Lösung geführt. Interessant daran ist, dass der TO keinen geistreichen Funken dazu beitragen konnte. Die einzige Leistung: Fordern, Vorwürfe und Urteilen. Und natürlich "Unbeliebt machen"
Beitrag #7331079 wurde von einem Moderator gelöscht.
Beitrag #7331084 wurde von einem Moderator gelöscht.
FahrerVomFahrrad schrieb im Beitrag #7331084: > Dafür von ihm etwas zu verlangen zu wollen ist doch eine > sehr sonderbare Betrachtungsweise. Davon war keine Rede. Er möchte aber, dass jemand jetzt für ihn ganz genau die Stelle im Quellcode von Arduino findet und erklärt, die dafür verantwortlich ist. Das mache ich gerne, aber eben nicht kostenlos. Ich meine, ich kann Geld immer gut gebrauchen. Aber mein Wochenende opfere ich nur, wenn man mir dafür mehr bietet, als mein Chef. So wie sich der TO bisher verhalten hat, muss er allerdings noch erheblich was oben drauf legen, um mich zu motivieren. Andererseits ist klar, dass er hier kostenlos abgreifen will. Also unterlasse ich es, hier ein Angebot zu machen.
Beitrag #7331103 wurde von einem Moderator gelöscht.
FahrerVomFahrrad schrieb im Beitrag #7331103: > Gegenleistungen Nee ... Und wenn, dann in Form von Respekt, oder so ähnlich. z.B. von der Sorte, die eine Kommunikation fruchtbar macht. Gegeneinander ausspielen gehört nicht dazu: > So haben ja schließlich die Beiträge von Norbert und EAF genau zu der > von mir gesuchten Lösung geführt. Das Lob fühlt sich etwas .... an.
Stefan F. schrieb: > sogar der intelligenteste Roboter der Welt kann dein Frage nicht > zufriedenstellend beantworten. Die konsequent richtige Antwort auf die Frage des TO ist: wenn du das Arduino-Framework verwenden willst, dann verwende es so, wie es dessen Entwickler vorgesehen haben. Sonst brauchst du hinterher nach ein paar Updates nicht herumjammern, dass dir der selbstgefrickelte Haufen auf den Kopf fällt. Michael S. schrieb: > ich habe den code meiner main.cpp doch gepostet ! Kann man dem entnehmen > dass die int main weak ist ? eher nicht oder ? kann das ausserhalb > irgendwo angegeben sein ? Nur aus Interesse und weil mir noch niemand aus der Zielgruppe eine brauchbare Antwort gegeben hat: wo lernt man denn dieses Plenken? * Plenken = unnötiges Leerzeichen vor dem Interpunktionszeichen * https://de.wikipedia.org/wiki/Plenk Und zur Info für die, die sich schwer tun, sich an ihren Usernamen zu erinnern: Nur 1 Nutzername pro Thread. Siehe die strunzsimplen Nutzungsbedingungen. Alle Posts mit den nachfolgenden Namen werden gelöscht.
:
Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.