Arduino Library unter Atmel Studio 6.2

Persönliche Seite #3798929
Lesenswert?

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
1
Arduino UNO R3
2
C:\Program Files (x86)\AVRDude\avrdude.exe
3
-patmega328p -carduino -Uflash:w:"$(TargetDir)$(TargetName).hex":i -b115200 -P\\.\COM5

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
Angehängte Dateien:
Persönliche Seite #3798989
Lesenswert?

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. ;)
Gast #3799780
Lesenswert?

@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.
Persönliche Seite #3799895
Lesenswert?

Hab gerade gemerkt, dass die als Link eingebundenen Dateien alle 
relative Pfade hatten. Anbei die korrigierte Version.
Vorausgesetzt Eure Toolchain liegt in
1
C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\
sowie die Library in
1
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\
Ansonsten einfach per Texteditor ersetzen. ;)
Angehängte Dateien:
Persönliche Seite #3940798
Lesenswert?

Bitteschön ein Update zur Verwendung mit dem Atmel Studio 6.2 Build 1502

https://github.com/damadmai/studio_6_arduino_100
https://github.com/damadmai/studio_6_arduino_100_template

https://github.com/damadmai/studio_6_arduino_150
https://github.com/damadmai/studio_6_arduino_150_template

M. B. schrieb:
> Was ist der Unterschied zwischen den beiden Zip-Dateien ?

Daniel A. Maierhofer schrieb:
> 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.

Sollte aber nun durch die Beschreibungstexte auf GitHub noch klarer 
hervorgehen. ;)

Die Einbindung der Servo-Library zog beispielsweise folgende Änderungen 
nach sich:
https://github.com/damadmai/studio_6_arduino_100_template/commit/098beda1dd5ff76ff44939aeb372798a8fad0a62#diff-1

M. B. schrieb:
> Wie kann ich zB die Ethernet lib mit DHCP usw in mein Projekt einbinden

Per Rechtsklick aufs Projekt -> Hinzufügen -> vorhandenes Element... 
alle .cpp-Dateien aus
1
C:\Program Files (x86)\Arduino\libraries\Ethernet\src
2
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility
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
1
C:\Program Files (x86)\Arduino\libraries\Ethernet\src
2
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility
3
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI
per absolutem Pfad hinzufügen.

Viel Erfolg damit,
Gast #4118300
Lesenswert?

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ß
Persönliche Seite #4118946
Lesenswert?

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. ;)
Gast #4134879
Lesenswert?

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();
   }
}
Gast #4180509
Lesenswert?

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.
Gast #5134400
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren