Moin, ich möchte den Seeeduino XIAO verwenden, der einen SAMD21G18A in sich trägt und von der Ardu IDE unterstützt wird. Stromzufuhr und Debug Port laufen über den USB Stecker, der ohne FTDI auskommt und kein virtueller COM Port ist. SWD ist leider nicht rausgeführt, sonst könnte ich zb Embitz verwenden. Aber J-Link steht auch nicht als Debugger drin im Manual, Atmel hat da wohl was anderes als ST. Problem: Die Arduino "Projektverwaltung" ist nicht so meines. Ich muss aber die IDE verwenden, da sie halt das Framework für diese CDU bildet. Und da sind halt nur .ino Dateien drin im Verzeichnis. Die vielen Features die dieser Chip hat sind sowieso nicht erreichbar über "Arduino". Nicht mal der Clock lässt sich variieren. Ein gescheites Programm mit 5-6 Files besteht aber aus Headern und Code Dateien, weil zwischen den Modulen ja Daten ausgetauscht werden müssen. Kriegt man das irgendwie hin? Erzeuge ich eine main.h und versuche die einzubinden, egal ob mit "" oder mit den eckigen Klammern wird die nicht gefunden.^ Gilt übrigens alles auch für den ESP8266. Wen es möglich wäre den ganzen WLAN Kram da raus zu halten, der jedes Projekt mit 350kb aufbläst würde ich den 8266 öfter verwenden. Aber Arduino will das so...
Du kannst in Arduino Projekten (*.ino) ganz normal header und weitere *.cpp Dateien einfügen und benutzen. Aber die "main" Datei wird vom Framework erzeugt, da solltest du die Finger von lassen. Da hast du ein kleines Beispielprojekt: http://stefanfrings.de/arduino_oled/index.html
Stefan ⛄ F. schrieb: > Aber die "main" Datei wird vom Framework erzeugt, da solltest du die > Finger von lassen. Oha... und da wundert man sich :-( "Textausgabe mit 6x8 Pixel Zeichensatz, incl. deutscher Umlaute" Das klingt ja prima.... gucken ob ich das in Embitz portiert kriege (Code sieht sehr gut aufgeräumt aus). Der Flaschenhals ist ja I2C bei den Dingern. Mit 400khz laufen die bei mir nicht richtig, hängen sich oft auf.
Christian J. schrieb: > Mit 400khz laufen die bei mir > nicht richtig, hängen sich oft auf. Ich habe ca. 500kHz als Maximum herausgefunden, aber ohne Langzeit-Erfahrung. Angeblich gibt es diese Display von unterschiedlichen Herstellern mit unterschiedlichen Eigenschaften.
Stefan ⛄ F. schrieb: > Ich habe ca. 500kHz als Maximum herausgefunden, aber ohne > Langzeit-Erfahrung. Die habe ich... LED Wetterstation mit ESP8266 und OLED1306... alle 1-2 Tage stand es. Aktuell auf 100khz läuft es seit gut 6 Monaten ohne ein einziges Mal zu hängen. Zu den Headern: Du kannst also zu jeder ino Datei (außer main) einen Header erzeugen? Und den einbinden in andere .ino 's.
PS: Kann man den wlan Overhead vom 8266 oder esp32 irgendwie ausklammern? Ich moechte nur die CPU verwenden ohne den wlan Klamauk.
Als Alternative zur Arduino IDE kann ich https://github.com/arduino/arduino-cli empfehlen. Zusammen mit einem kleinen Makefile ist das mMn wesentlich komfortabler als die Arduino IDE (die einige Limitierungen und Einschränkungen hat, da deren Zielgruppe halt hauptsächlich Einsteiger/Neulinge sind).
Bernhard schrieb: > Als Alternative zur Arduino IDE kann ich > https://github.com/arduino/arduino-cli empfehlen. Läuft nur unter Linux. Und das habe ich vor 1/2 Jahr runter geworfen (Slackware), da viel zu wenig verwendet. Schade....
Christian J. schrieb: > Bernhard schrieb: > >> Als Alternative zur Arduino IDE kann ich >> https://github.com/arduino/arduino-cli empfehlen. > > Läuft nur unter Linux. Und das habe ich vor 1/2 Jahr runter geworfen > (Slackware), da viel zu wenig verwendet. Schade.... Anscheinend nein. https://arduino.github.io/arduino-cli/latest/installation/#latest-packages
Christian J. schrieb: > SWD ist leider nicht rausgeführt, Anscheinend doch, nur als Pads auf der Unterseite. https://wiki.seeedstudio.com/Seeeduino-XIAO/#hardware-overview
jemand schrieb: > Christian J. schrieb: >> Bernhard schrieb: >> >>> Als Alternative zur Arduino IDE kann ich >>> https://github.com/arduino/arduino-cli empfehlen. >> >> Läuft nur unter Linux. Und das habe ich vor 1/2 Jahr runter geworfen >> (Slackware), da viel zu wenig verwendet. Schade.... > > Anscheinend nein. > https://arduino.github.io/arduino-cli/latest/installation/#latest-packages Jep, das sollte eigentlich auch unter Windows laufen. Siehe auch: https://www.youtube.com/watch?v=1jMWsFER-Bc (das Video ist aber echt nicht sehr spannend, da die Installation eigentlich ziemlich straight forward ist).
Hallo Christian, vielleicht zum besseren Verständnis. Deine .ino Datei mit Projektnamen kannste dir vorstellen als wenn das deine übliche main.c / main.cpp Datei ist. Das wird alles versteckt in https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp Du siehst in der .ino statt das Übliche
1 | #include ...
|
2 | |
3 | int main(void) |
4 | {
|
5 | while(1) |
6 | {
|
7 | }
|
8 | }
|
eben
1 | #include ...
|
2 | |
3 | void setup() // entspricht main(void) |
4 | {
|
5 | }
|
6 | |
7 | void loop() // entspricht while(1) |
8 | {
|
9 | }
|
Womit im Hintergrund Standard Libs wie Serial automatisch eingebunden werden mittels Arduino.h was allgegenwärtig ist. Du kannst deine weiteren/eigenen Libs ganz normal im Schema .h/.cpp schreiben und ganz normal in der Projekt .ino inkludieren. Außer man legt in der IDE weitere Tabs an die weitere .ino Dateien erstellen womit man Code auslagern kann. Würde ich dir aber nicht empfehlen. Die Üblichen .h/.cpp ist der sauberste Weg von allen. Nochwas. Du kannst natürlich in der Projekt .ino die setup und loop Funktion komplett löschen und das Übliche schreiben.
1 | #include ...
|
2 | |
3 | int main(void) |
4 | {
|
5 | while(1) |
6 | {
|
7 | }
|
8 | }
|
Dann hat man in der Arduino IDE nichts mehr von Arduino. Je nachdem was man möchte.
:
Bearbeitet durch User
Christian J. schrieb: Die Arduino IDE kann auch mit *.cpp und *.h Dateien im Projekt arbeiten, einfach eine neue Datei anlegen. Du musst nur all Header welche du in diesen Extra cpp Dateien verwendest explizit mit #include <header.h> referenzieren (z.B. die "Arduino.h"). > Problem: Die Arduino "Projektverwaltung" ist nicht so meines. Ich muss > aber die IDE verwenden, da sie halt das Framework für diese CDU bildet. Das stimmt nicht! Sieh dir mal Visual Studio Code zusammen mit PlatformIO an. Damit kannst du dieselben Libraries verwenden und wenn du möchtest kann du deinen Haupt-Sourcefile weiterhin "*.ino" nennen um es weiterhin in der Arduino IDE bearbeiten zu können, ich würde aber empfehlen alles in "*.cpp" Dateien zu verwenden, damit die anderen Plugins die Datei als cpp Datei erkennen. Langfristig hast du da viel mehr Spass damit und mit Intellisense und direkter git Anbindung und tausenden von Plugins ist Visual Studio Code der Arduino IDE haushoch überlegen. Michael
Michael D. schrieb: > Das stimmt nicht! Sieh dir mal Visual Studio Code zusammen mit > PlatformIO an. Läuft unter Windows 7 leider nicht :-((((( Python ist nicht installierbar. Und für W10 fehlt mir absolut der Nerv meine gefühlt 1000 Einstellungen neu zu machen. VSC erzeugt auch mal eben 89.000 Dateien im User Verzeichnis, die nicht mit deinstalliert werden....
Christian J. schrieb: > Läuft unter Windows 7 leider nicht :-((((( Python ist nicht > installierbar. Unsinn. Natürlich kann man Python auch auf Windows7 installieren. > VSC erzeugt auch mal eben 89.000 Dateien im User Verzeichnis, die nicht > mit deinstalliert werden.... So what? Man will es ja nicht deinstallieren. Und wenn doch, löscht man die entsprechenden Verzeichnisse halt manuell. Sind ja nur zwei.
Christian J. schrieb: > Läuft unter Windows 7 leider nicht :-((((( Python ist nicht > installierbar. Und für W10 fehlt mir absolut der Nerv meine gefühlt 1000 > Einstellungen neu zu machen. Einstellungen sind bei Visual Studio Code in Dateien abgelegt und entweder Bestandteil des Projektes oder und global. Einfacher konnte man Einstellungen noch nie auf einen anderen Rechner übertragen. > VSC erzeugt auch mal eben 89.000 Dateien im User Verzeichnis, die nicht > mit deinstalliert werden.... Nimm die Arduino IDE und werde damit glücklich. Genau für solche Leute wie dich wurde sie gemacht. Aber hör dann bitte auf zu jammern. Michael
Christian J. schrieb: > Du kannst also zu jeder ino Datei (außer main) einen > Header erzeugen? Ich habe sie *.cpp und *.h genannt. Das war für mich naheliegend, und weil das direkt klappte, habe ich da nicht weiter nach geforscht. Chris J. schrieb: > Kann man den wlan Overhead vom 8266 oder esp32 irgendwie > ausklammern? Du kannst die WLAN Schnittstelle abschalten, aber die 250kB Code schleppst du immer mit, weil darin da ganze Betriebssystem des Chips steckt. Bare-Metal Programmierung ist vermutlich nicht mit Arduino möglich. Ich würde empfehlen, hier nicht parallel über die IDE zu diskutieren. Die Frage des TO dreht sich primär um das Arduino Framework. Die "Problematik" betrifft jede IDE, deswegen ist ein Wechsel der IDE jetzt gerade kontraproduktiv, wenngleich ich das langfristig auch empfehlen würde. Du hast das auf meiner Homepage vermutlich schon gesehen.
Bernhard schrieb: > Jep, das sollte eigentlich auch unter Windows laufen. Siehe auch: > https://www.youtube.com/watch?v=1jMWsFER-Bc (das Video ist aber echt > nicht sehr spannend, da die Installation eigentlich ziemlich straight > forward ist). Hab es drauf, klappt prima. mehr als das Kompilieren und der Upload müssen ja nicht funktionieren. Für alles andere gibt es bessere Alternativen. Ich entwickle grad Arduino auf Embitz 1.1 Projektmanager bzw. Editor, da das Parsen des Projektes immer funktioniert, egal welche CPU dahinter steckt. Im cmd Fenster nur compile eintippen bzw Pfeil-Oben und fertig. Und da Embitz mein absoluter Liebling ist bleibt das auch erstmal so.
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.