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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Klaus (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht solltest du mal damit rausrücken welches Projekt du meinst.

von R. S. (ic_tester)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
3 lesenswert
nicht 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_)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht lesenswert
Www uecide org
Kann für verschiedene Plattformen bauen

von Klaus (Gast)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.