Go Down

Topic: [Résolu] Intégration du langage Arduino dans AVR Studio 5 (Read 27663 times) previous topic - next topic

gerse

Effectivement toutes les variables ne sont pas enseignées en particulier les Targets.
Il doit manquer un lien entre la compilation du projet et l'execution des tools, mais je n'arrive pas à (encore^^) voir ou ca se passe.
ItemPath="F:\Program Files\Atmel\AVRStudio 5.1\blinkblink\blinkblink\blinkblink.cproj"
ItemDir="F:\Program Files\Atmel\AVRStudio 5.1\blinkblink\blinkblink\\"
ItemFileName="blinkblink"
ItemExt=".cproj"
BinDir=""
ProjectDir="F:\Program Files\Atmel\AVRStudio 5.1\blinkblink\blinkblink\\"
ProjectFileName="blinkblink.cproj"
SolutionDir="F:\Program Files\Atmel\AVRStudio 5.1\blinkblink\\"
SolutionFileName="blinkblink.atsln"
TargetPath=""
TargetDir=""
TargetName=""
TargetExt=""

A noter le double / à la fin de certains path: Un bug de dev ou la variable qui ne s'initialise pas ?

gerse

J'ai regardé dans les variables d'environnement en initialisant 'InitialDirectory"  ainsi que le repertoire de travaille (des fois qu'il fisse un cd ..) et rien. Je pense que ces variables doivent être initialisée avec Microsoft Visual Stdudio.
Quelqu'un aurait installé AVRStudio en mode full avec la quincaillerie Microsoft pour pouvoir tester?
Gerse

barbudor

#77
May 08, 2012, 02:35 pm Last Edit: May 08, 2012, 03:13 pm by barbudor Reason: 1
Un autre truc qui me saoule : le but de reconstruire les libs dans AVR studio c'était de pouvoir définir des configurations pour chaque carte.
Ainsi dans mon projet ArduinoCore je comptais avoir
+- Debug UNO (ATmega328P@16MHz)
+- Release UNO (ATmega328P@16MHz)
+- Debug Duemilanove (ATmega168P@16MHz)
+- Release Duemilanove (ATmega168P@16MHz)
+- Debug Mega2560 (ATmega2560@16MHz)
+- Release mega2560 (ATmega2560@16MHz)

De façon a pouvoir builder chaque version des libs.

Et bien ce n'est pas possible !
Le type de device est global au projet et non pas spécifique à chaque configuration.

Sous VisualStudio j'avais l'habitude de cela pour créer les versions 32 et 64 bits d'une même lib par exemple

Donc là je ne peut pas construire plusieurs versions d'une même lib (ou projet en général) pour plusieurs cibles différentes.

Nul, nul nul et archi-nul !!!!
Grosse colère. ]:D ]:D ]:D ]:D ]:D



EDIT : J'ai réussi à faire ce que je voulais en éditant le fichier projet *.atproj" à la main dans un éditeur et en rajoutant le device à la main :
Quote

.....
  <PropertyGroup Condition=" '$(Configuration)' == 'Release UNO (ATmega328P@16MHz)' ">
    <avrdevice>ATmega328P</avrdevice>
    <ToolchainSettings>
....
  <PropertyGroup Condition=" '$(Configuration)' == 'Release Duemilanove (ATmega168@16MHz)' ">
    <avrdevice>ATmega168P</avrdevice>
    <ToolchainSettings>
...



... Ca commence a devenir aussi ch...t que de faire des makefile à la main.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

patg_

Bonjour, j'ai fait une traduction et adaptation du tutoriel de engblaze.com sur la configuration d'AVR Studio 5.1 pour l'Arduino.

Il s'adresse à ceux qui comme moi trouvent l'environnement de développement Arduino un peu trop rudimentaire et qui souhaiteraient profiter de tous les avantages d'un vrai IDE avec leur Arduino.
Il est disponible ici:
http://breizhmakers.over-blog.com/pages/tutoriel-developpement-arduino-avec-avr-studio-5-1-7556975.html

Reste à indiquer comment créer un template de projet.

C'est ma première contribution ici et à la communauté Arduino.
Je découvre cette plateforme, mais je pratique le dév et l'électronique depuis, très longtemps  :smiley-mr-green:

 
Mes Arduineries: http://breizhmakers.over-blog.com/

Jean-Marie

Hello patg_

Merci pour cette adresse. Je n'ai fait que survoler car je n'ai pas beaucoup le temps actuellement et je connaissais le tutorial original en anglais.

Sur ton blog, j'ai également survolé ton projet d'horloge qui rejoint une idée que j'ai toujours derrière la tête: lier une horloge DCF77 à un thermostat-programmateur de chauffage central.
Je n'ai pas approfondi ton projet mais je n'ai pas compris comment tu fais apparaître ton caractère chinois avec une matrice de leds. Par contre, le caractère que tu montres est de toute beauté.
Amicalement, Jean-Marie

darki03


Bonjour, j'ai fait une traduction et adaptation du tutoriel de engblaze.com sur la configuration d'AVR Studio 5.1 pour l'Arduino.

Il s'adresse à ceux qui comme moi trouvent l'environnement de développement Arduino un peu trop rudimentaire et qui souhaiteraient profiter de tous les avantages d'un vrai IDE avec leur Arduino.
Il est disponible ici:
http://breizhmakers.over-blog.com/pages/tutoriel-developpement-arduino-avec-avr-studio-5-1-7556975.html

Reste à indiquer comment créer un template de projet.

C'est ma première contribution ici et à la communauté Arduino.
Je découvre cette plateforme, mais je pratique le dév et l'électronique depuis, très longtemps  :smiley-mr-green:


Bonjour à tous,

J'ai découvert ce fil en me baladant sur le forum et même si je suis pas très expérimenté en développement, je trouve l'environnement AVR studio assez attrayant et surement rempli de fonctionnalités non accessible avec l'IDE Arduino !

J'ai donc téléchargé AVR studio 6 et suivit le petit tutoriel ci-dessus (merci pour la traduction, même si je comprends le Shakespeare c'est quand même mieux en Molière ;)) et j'ai essayé avec un sketch utilisé pour piloter un expandeur de ports I2C MCP23017 qui lui-même pilote un driver de tube nixies et le multiplexage de quatres tubes.

Après quelques erreurs dans les include (il fallait aussi renseigner les dossiers dans le compilateur C car la librairie Wire utilise un utilitaire "Twi.c") j'ai eu un "Build succeed" \o/ (j'ai du sauter sur ma chaise).

pour finir j'ai récupéré les options de la commande avrdude de l'IDE arduino pour le "Upload using programmer" (j'utilise une arduino Uno comme ISP) et la miracle final le programme est chargé dans l'Atmega de ma plaque à trous ;)

Je vous remercie donc pour toutes ces informations ! je dois maintenant me former à cet environnement pour réaliser le programme de mon horloge Nixie (voir petite photo de l'essai)

une petite question au passage :
Quote
Reste à indiquer comment créer un template de projet.


Cela veut dire que l'on pourrait envisager d'éviter de redéfinir les option du compilateur à chaque fois ?

Bonne soirée.
Bon sang ! mais c'est bien sur !

barbudor


Cela veut dire que l'on pourrait envisager d'éviter de redéfinir les option du compilateur à chaque fois ?

Exactement !
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Jean-Marie

Quote

une petite question au passage :
Quote

Reste à indiquer comment créer un template de projet.


Cela veut dire que l'on pourrait envisager d'éviter de redéfinir les option du compilateur à chaque fois ?


Je ne sais pas au juste ce que recouvre cette phrase de notre ami Patg_ mais on pourrait très bien imaginer que tu écrives le strict début de tout programme (Place pour le Titre, Date, Auteur, includes de base, etc...  avec les options du compilateur).
Ensuite tu vas dans le Menu File et tu choisis "Export Template"

Je n'ai pas essayé personnellement car je suis sur un autre projet mais c'est une piste à explorer.

P.S. Si tu explores, tiens-nous au courant. Merci.
Amicalement, Jean-Marie

darki03

Bonsoir,

Je viens d'essayer l'exportation de template et c'est effectivement la bonne solution ! j'ai maintenant une nouvelle option dans "New project" que j'ai nommé "Arduino" !
Ensuite on retrouve bien tout ce qui a été paramétré, par contre pour le .cpp il garde le nom de celui du projet source (j'avait tout supprimer du code pour ne laisser que les déclarations minimales et setup() / loop()). Je pense qu'une renommage dans le projet créé devrait suffire !

Merci du tuyau en tout cas ;)

PS: Pour le fichier .cpp, on peut aussi créer un "Project Template" sans .cpp à l'intérieur et créer ensuite un "Item Template" à partir d'un .cpp contenant un structure type setup() / loop(). Après la créattion du projet il suffit d'ajouter un New item à la solution et de sélectionner l'item Template précédemment créé.

En espérant ne pas être trop brouillon dans mes explications.
Bon sang ! mais c'est bien sur !

gerse

Hello,

Sur le même model qu'AVR Studio 5 je suis passé en AVR Studio 6 lors de l'upgrade Arduino1-0.1. J'ai recompilé toutes les librairies pour en faire des .a, car je trouve ca plus pratique

J'ai créé un template exécutable c++ et un template library pour éviter le pénible de la chose et être pleinement opérationnel pour la suite
Du coup ca fait une arborescence Arduino facilement transportable (ou reloctable)...

J'ai testé avec les samples Blink et EthernetServer... ca marche^^

J'ai gardé la même arborescence qu'Arduino1-0.1. Je pense que cela est une ânnerie et qu'il aurait été préférable de créer une arbo src, include, lib comme sur une vrai machine unix... Je ferais ca pour les prochaines release Arduino ou AVR...

Mon seul regret, c'est de ne pas pouvoir, lors du chargement du code sur l'arduino, récupérer automatique le path 'release' ou 'debug'
Gerse


ruptor

#85
Jan 24, 2013, 01:06 pm Last Edit: Jan 24, 2013, 01:35 pm by ruptor Reason: 1
Bonjour à tous

J'ai suivi ce tutorial pas à pas mais je n'ai pas les mêmes erreurs que vous :( Le build ne passe pas à cause de cette erreur : 'Arduino' does not name a type....


la cause du problème : #include <WProgram.h>et dans celui ci : Arduino.h d'ecrit...


Ou se situe mon erreur ?

Merci d'avance

J'ai renommé le fichier en arduino.h et maintenant c'est : pins_arduino.h not such file ..... et je n'ai pas ce fichier.... dans la librarie


Bon le build est passé avec 2-3 modifications...

Si je veux piloter un LCD avec la librairie j'ai ca : Error   6   undefined reference to `LiquidCrystal::clear()'

Toutes les erreurs sont sur cette librairie que j'ai pourtant mise.... Essayez avec include "" ou <> ca ne veut pas...

Une idée ?

Go Up