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
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?
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
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!
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
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.
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.
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.
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/...
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 !
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.
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
@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.
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
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
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
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