Servus Leute!
Um eine Brücke zwischen der Arduino-"Welt" sowie dem komfortablen AVR
Studio 6.2 zu schlagen habe ich mich mal daran gemacht folgende
Tutorials durchzuarbeiten:
http://www.engblaze.com/tutorial-using-atmel-studio-6-with-arduino-projects/http://code-clarity.blogspot.co.at/2013/01/atmel-studio-for-arduino-guys-part1.html
Dabei ist ein Atmel / AVR Studio Projekt entstanden, welches ich gerne
als Basis nehme um mal schnell einen Programmcode zu testen, der
Verwendung von der Arduino-Library macht. Ich hab das selbst schon des
Öfteren gebraucht, um die Verwendung der Arduino IDE bis auf deren
Installation komplett zu vermeiden. Vor allem um bestehende
Beispielcodes für die Ansteuerung von Sensoren oä. schrittweise in
"reines" C zu "übersetzen". Nur so konnte ich z.B. von der tollen
IRMP-Library auch gebrauch machen, ohne dass sich etwas mit bereits
heimlich verwendeten Timer spießt. Außerdem kann man nun mit Alt+G
bzw. Goto Implementation bis ins kleinste Detail nachverfolgen, was
unter der Haube der Library vor sich geht. & eventuell ab & zu den Kopf
schütteln. :D
Jetzt verstehe ich warum das Kompilieren in der Arduino IDE derart lang
dauert. - Da wird jedes mal die komplette Library aufs neue kompiliert!
Nicht vergessen später dann von der Debug-Konfiguration wegzuschalten
und bei ggf. anderer Taktung, z.B. Pro Mini mit 8MHz diese unter
Symbols bei beiden Projekten unter Symbols (für C sowie C++) F_CPU
anzupassen!
& dann die komplette Projektmappe neu erstellen lassen!
Ein weiterer Tipp:
Die zusätzlichen Zeilen bei der Build-Ausgabe, über die man scrollen
muss, wenn man die Größe des Kompilats (binäre Sketchgröße im Arduino
Slang :D - wobei es mir da schon auch ordentlich die Haare aufstellt)
erfahren möchte, kann man hier deaktivieren:
Extras->Optionen->Projekte & Projektmappen->Ausführlichkeit der Ausgabe:
Detailiert statt Diagnose
Achja & um aus dem Studio heraus auch gleich flashen zu können,
einfach nach folgender Anleitung vorgehen und dabei die angegebenen
AVRDude Zeilen eingeben.
Beitrag "USBasp unter AVRStudio 5 oder 6 verwenden - Anleitung!"
(natürlich den Installationspfad sowie aktuellen COM-Port angeben)
AVRDude: http://download.savannah.gnu.org/releases/avrdude/?C=M;O=D
Weil sich beim Versionswechsel eininge Pfade geändert haben gibts es für
beide jeweils aktuellen Versionen von http://arduino.cc/en/Main/Software
jeweils ein eigenes Projekt. Es wird dabei ausgegangen, dass ihr es im
vorgeschlagenen Verzeichnis installiert.
Viel schnellen & hoffentlich frustlosen Erfolg damit,
Daniel A. Maierhofer
Daniel A. Maierhofer schrieb:> ohne dass sich etwas mit bereits> heimlich verwendeten Timer spießt.
Es gibt keine "heimlich" verwendeten Timer in den Arduino-Libs. Wer zu
faul ist die Doku zu lesen ist selbst schuld.
In der offiziellen Doku http://arduino.cc/en/Reference/HomePage habe ich
keine Informationen dazu finden können.
Hat jemand einen Link zu einer Seite, wo das gut beschrieben ist?
Bisher bin ich mit dem Nachschauen im Source eigentlich immer recht gut
ausgekommen, außerdem kann der nicht wie eine zugehörige Doku veraltet
sein und evt. nicht zusammenpassen, da steht ja schließlich schwarz auf
weiß was passiert. Grade deswegen finde ich so toll, dass man mit Alt+G
bzw. Goto Implementation da bis ins kleinste Detail nachverfolgen kann,
was passiert.
Zumindest auf C-Code-Ebene. ;)
& wenn man noch das "Projekt" von
Beitrag "Re: AVR Atmel Studio 5 6 - libc Source"
als vorhandenes Projekt hinzufügt kommt man per Alt+G sogar zum Source
der verwendeten avr-libc Funktionen! Querverweise olé!
@Daniel
Wenn hier jemand etwas veröffentlicht, was auch anderen Leuten von
Nutzen
sein kann, so kommt sofort eine Ratte aus ihrem Loch, um diese Arbeit
schlechtzureden. Das ist hier so. Man muß dann hart gegen sich selbst
sein
und den "Dank" solcher Leute ignorieren.
Hab gerade gemerkt, dass die als Link eingebundenen Dateien alle
relative Pfade hatten. Anbei die korrigierte Version.
Vorausgesetzt Eure Toolchain liegt in
Hy, ich finde die Idee sehr gut.
Ich versuche gerade vergeblich, die Libs von Arduino ins AVR-Studio zu
bekommen.
Was ist der Unterschied zwischen den beiden Zip-Dateien ?
Wie kann ich zB die Ethernet lib mit DHCP usw in mein Projekt einbinden
?
als LINK (durch Anklicken des Pfeils bei "Hinzufügen" im
Dateiauswahldialog) hinzufügen. (in der .cppproj sollte man dann noch
die relativen Pfadangaben durch absolute ersetzen...)
Damit die Header gefunden werden, anschließend per Rechtsklick aufs
Projekt -> Eigenschaften bei der Toolchain für Alle Konfigurationen zu
den Directories beim C++ Compiler zumindest die Ordner
> Es gibt keine "heimlich" verwendeten Timer in den Arduino-Libs. Wer zu> faul ist die Doku zu lesen ist selbst schuld.
Genau, wer Arduino nimmt ist selbst schuld!
Hallo meine Frage zum ganzen,
ich habe ein größeres Projekt mit der Arduino IDE geschrieben und würde
dieses gerne in ATMEL Studio bearbeiten, und später mit dem
Programmieradapter flashen ohne Bootloader.
Wieso genügt es nicht einfach , die Standart Arduino.h lib mit
einzubinden ?
Darin befinden sich doch alle diese "hilfreichen" funktionen aufrufe
ect??
Diesen Setup() kram ect braucht doch keiner ?
Gruß
Naja, weil in der Header Datei nur die Funktionsdeklarationen, aber
nicht die Definitionen, also der eigentliche Code enthalten sind.
Der ist in den vielen .c-Files, die ich da manuell eingebunden hatte.
Außerdem würden ohne die main / setup Aufrufe im Hintergrund die Timer,
der ADC usw. nicht initialisiert werden, was z.B. fürs unktionieren von
analogWrite() und analogRead() notwendig ist. Siehe auch:
Lara schrieb:> Es gibt keine "heimlich" verwendeten Timer in den Arduino-Libs. Wer zu> faul ist die Doku zu lesen ist selbst schuld.Daniel A. Maierhofer schrieb:> In der offiziellen Doku http://arduino.cc/en/Reference/HomePage habe ich> keine Informationen dazu finden können.> Hat jemand einen Link zu einer Seite, wo das gut beschrieben ist?
Hab bis jetzt nix Gutes dazu gefunden. Evtl. jemand anderes?
Fürs Programmieren kann ich
Beitrag "AVRDUDE Program_Upload_to_MC.bat"
empfehlen. ;)
Jetzt wird ja dann eh bald wieder ein Update fällig. ;)
sry das war mein Fehler natürlich bräuchte ich dazu auch die .c
Dateien...
Kannst du das mir erläutern ? ->
Außerdem würden ohne die main / setup Aufrufe im Hintergrund die Timer,
der ADC usw. nicht initialisiert werden, was z.B. fürs unktionieren von
analogWrite() und analogRead() notwendig ist. Siehe auch:
das ganze sieht doch so aus oder nicht? ->
main(){
setup();
while(true){
loop();
}
}
Hallo,
nochwas. Es hindert Euch aber auch niemand daran in der Arduino IDE rein
C zu programmieren. Aber wie gesagt mit dem Atmel Studio und dem Plugin
habt ihr eine Oberfläche und könnt alles machen. Geht auch aus VS
heraus.
Hallo,
wenn ich die Datei Studio_Arduino.cpp ausführe kommen da nur 2 error:
Error 1 cannot find -larduinocore 1 1 Studio_Arduino
+
Error 2 ld returned 1 exit status collect2.exe 0 0 Studio_Arduino
Was kannn/muss ich dagegentun ?
Danke schonmal im vorraus.
LG
Dustin