Forum: Compiler & IDEs Wie Arduino Projekt ohne Arduino IDE benutzen?


von Klaus (Gast)


Lesenswert?

Hallo,
ich habe das Problem das ich ein Arduino Projekt habe und das auf einen 
anderen Prozessor (MEGA88)zum laufen bringen will.

Mit der Arduino IDE bekomme ich das nicht hin und außerdem arbeite ich 
sonst mit CODE::BLOCKS.

Die ganzen nicht STD Libs habe ich gefunden.

So nur wie bekomme ich den ganzen Arduino Code um ohne deren IDE zu 
benutzen.

VG, Klaus

von Ralf B. (Firma: Scorptech) (mad_scorp)


Lesenswert?

Du kannst den Arduino als ISP konfigurieren so dass er danach Daten 
einfach "weiterreicht". Dann könntest du, wenn du die Daten für den 
MEGA88 einbindest, auch dein Arduino code auf den MEGA88 laden.

Ich hab mir für sowas aus einer PCB und ein paar Messerleisten ein 
Schild für den Uno gebastelt und flashe damit sowohl Arduino code als 
auch direkte hex-Dateien auf ATtiny85.

Hilft dir das weiter?

von Klaus (Gast)


Lesenswert?

Irgendwie hilft mir das jetzt nicht, liegt wohl daran das ich das nicht 
nachvollziehen kann was Du da machst.

Das einzige was ich draus lese ist das man der IDE irgendwie beibringen 
kann das man einen MEGA88 hat.

VG, Klaus

von Klaus (Gast)


Lesenswert?

Achso der GCC unter der IDE kann logischerweise die ganzen Prozessoren, 
nur wie man den hier umstellt kann ich nicht erkennen.

Das Original Projekt wurde angeblich auf einen TINY45 geflasht
Habe es eben mal als NANO 328 versucht zu kompielieren, ging natürlich 
nicht!
Wäre ja zu einfach gewesen.

Brauche ich die neueste IDE oder reicht die 1.61?
Kann ich heute abend updaten!

von Max D. (max_d)


Lesenswert?

Vielleicht solltest du mal damit rausrücken welches Projekt du meinst.

von R. S. (ic_tester)


Lesenswert?

Hallo,

Atmega 8/88/328 sind doch vom Pinout gleich, also vom UNO den Chip 
runter und steck den 88er rauf.

Dann brauchst noch das hier dazu

https://github.com/MCUdude/MiniCore

Bootloader brennen und viel Erfolg damit dann.

Oder machst es so wie oben schon beschrieben wurde, Arduino als ISP 
konfigurieren.

Gruß ic_tester

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Beitrag "Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis"

Ich habe halt von den MEGA88 viele hier liegen und außerdem ist die 
Hardware nun aufgebaut und braucht jetzt nur noch die Software.

Ich bin auch ohne Bootloader glücklich, den brauche ich hier nun 
wirklich nicht.

von Ralf B. (Firma: Scorptech) (mad_scorp)


Lesenswert?

Klaus schrieb:
> Ich bin auch ohne Bootloader glücklich, den brauche ich hier nun
> wirklich nicht.

Leider funktionieren Arduino-Programme nicht ohne Arduino-Bootloader. Du 
musst nach den Definitions-Dateien des MEGA88 für Arduino suchen und 
diese dann ins richtige Verzeichnis packen. Dann musst du den 
Beispielsketch "Arduino ISP" auf dein Arduino-Board laden, die 
notwendigen Leitungen verbinden (steht detailliert auf der Arduino-HP, 
Stichwort "Arduino ISP") und anschließend musst du in der IDE den 
Programmer auf "Arduino ISP" stellen und beim Board deinen MEGA88 
aussuchen.

Um zu schauen, ob der ISP richtig funktioniert kannst du Avrdude manuell 
aufrufen und schauen, ob er die richtige Signatur zurück liefert, du 
also den richtigen Chip ansprichst.

Danach sollte das Sketch kompiliert und auf den MEGA88 geflasht werden.

von Klaus (Gast)


Lesenswert?

Hilfe ist das ein Schrott.

Sorry aber warum tut man sich das an?
Gut es ist eine einfache Art ins Thema Programmierung rein zu kommen, 
aber dann steht man da und wundert sich das die Welt anders 
funktioniert.

Ich glaube das ich den Code neu zusammen baue mit CB und einen eigenen 
Framwork dafür baue. Am eigentlichen Code will ich kaum was ändern auch 
um später mal andere Projekte / Libs ohne probleme nutzen zu können.

Naja bei dem Projekt ist das ganze noch übersichtlich und sollte keine 4 
Stunden dauern. Wäre halt nur schön gewessen, wenn es ganz einfach 
gewesen wäre.

von Ralf B. (Firma: Scorptech) (mad_scorp)


Lesenswert?

Klaus schrieb:
> Hilfe ist das ein Schrott.
>
> Sorry aber warum tut man sich das an?
> Gut es ist eine einfache Art ins Thema Programmierung rein zu kommen,
> aber dann steht man da und wundert sich das die Welt anders
> funktioniert.

Ich verstehe nicht ganz, wo das Problem liegt. Runterladen der MEGA88 
def, einrichten des Arduino als ISP und hochladen des Programms erledigt 
sich in 10 Minuten. Die elektrischen Verbindungen vom Arduino zu einem 
anderen Controller sind ohne Status-LED 6 Leitungen und mit 9 Leitungen, 
auf nem Breadboard kein Thema.

Hast du keinen Arduino den du als ISP konfigurieren kannst? Kein 
Problem, die IDE kennt auch so ziemlich alle anderen ISPs.

Ich persönlich nutze die Arduino IDE ganz gern weil sie eben einen 
Haufen Bibliotheken mitbringt und man schön high-level programmieren 
kann. Für mich für Rapid-prototyping ideal.

Womit programmierst du denn sonst deine Controller? Arduino spuckt auch 
einen hex-file aus, den du theoretisch sogar von Hand mit Avrdude auf 
den Controller laden kannst, wenn du vorher noch den Bootloader drauf 
lädst.

Der Bootloader ist halt die "Kröte" die man schlucken muss, um 
high-level zu programmieren.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Letztes Jahr versuchte ich eine HEX Datei über Kommandozeile dem 
Bootlader zu reichen und hatte auf Anhieb funktioniert. Folgend ist ein 
Auszug aus meiner Projekt Dokumentation als Beispiel:

Command Line BUILD and LOAD:
BOOTLOADER with AVRDUDE:

Assumes C:\AVRDUDE directory with:
----------------------------------
A.BAT
AVRDUDE.CONF
AVRDUDE.EXE
A.HEX
//////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////
WORKS: (Inside A.BAT)
c:\AVRDUDE\avrdude -CC:\AVRDUDE\avrdude.conf -v -patmega328p -carduino 
-PCOM4 -b57600 -D -Uflash:w:C:\AVRDUDE\A.hex:i
//////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////
Note: Verify correct COM port is used

Vielleicht hilft es Dir.
Ich kann mich nicht mehr erinnern wo das Arduino IDE den HEX file 
speichert. Ist vielleicht unter USERS/...

von knollo (Gast)


Lesenswert?

Hallo !

Ralf B. schrieb:
> Leider funktionieren Arduino-Programme nicht ohne Arduino-Bootloader

Das ist mir jetzt aber ganz neu ! Richtig ist, das beim Brennen des 
Bootloaders die Fuses gesetzt werden. Deshalb muß auch bei AVR's die 
Bootloader nicht können, (Tiny's) der Bootloader gebrannt werden. Geht 
natürlich auch zu Fuß.

Klaus schrieb:
> Das Original Projekt wurde angeblich auf einen TINY45 geflasht

Hast Du die notwendigen Erweiterungen in der Arduino-IDE nachinstalliert 
?
Kannst Du die TINY's anwählen ? (Unter Board's) ?

Schau Dir die Datei boards.txt in der IDE an! Hier kannst Du deien 
MEGA88 definieren !

R. S. schrieb:
> Atmega 8/88/328 sind doch vom Pinout gleich, also vom UNO den Chip
> runter und steck den 88er rauf

Das sollte also nicht so kompliziert sein!
Viel Glück !

von Ralf B. (Firma: Scorptech) (mad_scorp)


Lesenswert?

knollo schrieb:
> Das ist mir jetzt aber ganz neu ! Richtig ist, das beim Brennen des
> Bootloaders die Fuses gesetzt werden. Deshalb muß auch bei AVR's die
> Bootloader nicht können, (Tiny's) der Bootloader gebrannt werden. Geht
> natürlich auch zu Fuß.

Interessant. Ich dachte, der setzt auch noch eine irgendwie geartete 
Einsprungadresse. Das macht das ganze ja eigentlich noch einfacher für 
den TO.

von Starlord (Gast)


Lesenswert?

Www uecide org
Kann für verschiedene Plattformen bauen

von Klaus (Gast)


Lesenswert?

Wenn man den Bootloader nicht braucht dann ist das gut.
Bin gerade dabei alles zu installieren, hoffe das ich es noch schaffe 
ein Ergebnis zu bekommen.

Hinter Arduino steckt nichts weiter als der GCC und den habe ich seit 
Jahren mit Code::Blocks im Einsatz. Teilweise sogar nur mit einem 
Makefile.

Die Arduino IDE ist halt leider nichts für jemanden der gerne mal den 
Debugger an wirft. Da ist dann das AVR Studio oder CB mit einer 
Erweiterung deutlich besser. Wozu hat man denn sonst damals die ca. 400€ 
ausgegeben wenn man die nicht nutzten kann. Printf und Pinwackeln sind 
nun mal nicht immer möglich und auch oft nicht geeignet dafür.

Werde aber, auch wenn das mit der IDE geht, mir einen eigenen kleinen 
Framework bauen. Ist ja nicht so kompliziert und wird mir auf Dauer wohl 
am meisten bringen. Wichtig ist dann halt nur das ich recht einfach 
Arduino Projekte einbinden kann.

VG, Klaus

von Wolfgang (Gast)


Lesenswert?

Klaus schrieb:
> So nur wie bekomme ich den ganzen Arduino Code um ohne deren IDE zu
> benutzen.

http://www.visualmicro.com/page/Arduino-for-Atmel-Studio.aspx

von Ralf B. (Firma: Scorptech) (mad_scorp)


Lesenswert?

@Klaus

Aus deinen Beiträgen entnehme ich das du auf jeden Fall viel viel mehr 
Ahnung von MCs hast als ich und die Arduino-"Krücken" die mir recht gut 
helfen, mich in das Thema einzuarbeiten eher lästig, unnötig und 
wahrscheinlich sogar störend sind.

Klaus schrieb:
> Hinter Arduino steckt nichts weiter als der GCC und den habe ich seit
> Jahren mit Code::Blocks im Einsatz. Teilweise sogar nur mit einem
> Makefile.

Ich versuche mich gerade in make einzuarbeiten um von den batch-Dateien 
wegzukommen, die ich momentan verwende um Avrdude und avrasm2 zu 
steuern. Ich möchte am Ende VS Code für alle meine Programmiersprachen 
verwenden können, daher bietet sich das an.

Wünsche dir viel Erfolg und gutes Gelingen. Mit deiner Erfahrung wird 
das bestimmt schnell und einfach gehen.

von Klaus (Gast)


Lesenswert?

34 Jahre embeded Kram helfen einem manchmal leider auch nicht.

Die Arduino Teile finde ich nicht schlecht, habe etliche NANO im 
Einsatz.
Allerdings den Code habe ich immer ohne jede Änderung direkt übernomen, 
oder gleich was eigenes drauf laufen.

Leider ist die IDE für anspruchsvolle Sachen nur bedingt geeignet.
Der Hardware ist es sowieso egal wo das Program herkommt (IAR  Keil  
GCC / ....) und mit welchem Editor der Code geschreiben wurde.


Muste gesten leider 2 Minuten nach meinem Komentar abbrechen, geht heute 
weiter.
Klaus

von Klaus (Gast)


Lesenswert?

So ich bin fertig!

Habe eine Codeblocks Erweiterung extra für Arduino gefunden, auch wenn 
die schon einige Jahre älter ist, macht es das ganze recht einfach.
Muss man halt nur gegen den neuen Code ersetzen.

Hatte aber vorher einfach alles benötigte aus dem Arduino Ordner bei mir 
rein kopiert und die Dateinen im Projekt eingebunden.
War nicht so schwer und jetzt habe ich alles unter kontrolle.

Mit der Arduino IDE habe ich auch weiter gespielt und mal die ganzen 
Erweiterungen eingebunden, das geht dann auch alles ohne Probleme, außer 
das ich keinen Debugger habe und nicth alles so machen kann wie ich 
will.


Was mir unangenehm aufgefallen ist, ist das AD abfragen immer eine 
"Jetzt abfragen und warten" Sache ist. Ich bevorzuge das die Daten immer 
im Hintergrund abgerufen werden und ich sie einfach alle im Speicher 
habe.
Aber das ist halt meine ART der Entwicklung.

VG Klaus

von Michael U. (amiga)


Lesenswert?

Hallo,

Klaus schrieb:
> Was mir unangenehm aufgefallen ist, ist das AD abfragen immer eine
> "Jetzt abfragen und warten" Sache ist. Ich bevorzuge das die Daten immer
> im Hintergrund abgerufen werden und ich sie einfach alle im Speicher
> habe.
> Aber das ist halt meine ART der Entwicklung.

Niemand hindert Dich daran auf analogRead() zu verzichten und den ADC 
selbst passend einzustellen und eine passende ISR einzubinden. Auch 
nicht innerhalt der ArduinoIDE, auch nicht als Kombination mit 
"üblichem" C-Code.
Das läßt sich auch ziemlich bunt mit den Arduino-Funktionen mischen.
Natürlich ist man dann auch selbst dafür verantwortlich, was man 
einbindet, was man nutzen will und welche Wechselwirkungen es gibt.

In diesem Fall ist es gut, daß die Arduino-Sachen alle als Source 
vorliegen und nicht als vorcompilierte Bibliotheken.

Ich habe aus Bequemlichkeit schon komplette alte AVR-Studio C-Projekte 
in die ArduinoIDE gworfen und dort compiliert.

Gruß aus Berlin
Michael

von Klaus (Gast)


Lesenswert?

Das man der Arduino-IDE alles machen kann ist doch klar weil der GCC 
dahinter steckt und somit alles schluckt (C & C++).
Ja zum Glück ist alles als Source da, sonst wäre Arduino möglicherweise 
auch nicht so erfolgreich.

Das Problem ist das ich keinen Debugger unter Arduino habe, dafür 
brauche ich dann halt was anderes. Bei mir geht es halt nicht ohne!
Ansonsten kann man sehr gut mit der Arduino IDE leben, zumal die auch 
immer besser wird wie ich feststellen durft.

VG, Klaus

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
Noch kein Account? Hier anmelden.