De l'Arduino au langage C standard avec AVR Studio - Page 2
Discussion fermée
Page 2 sur 21 PremièrePremière 2 DernièreDernière
Affichage des résultats 31 à 60 sur 614

De l'Arduino au langage C standard avec AVR Studio



  1. #31
    bobflux

    Re : De l'Arduino au langage C standard avec AVR Studio


    ------

    Citation Envoyé par 5_cylindres Voir le message
    leur IDE me sort par les yeux car même si on veut programmer en vrai C il ajoute des cochonneries qui foutent la m...
    Tu as l'air de confondre l'IDE et le runtime arduino.

    L'IDE, c'est le logiciel gravement pourri que tu lances sur ton PC, avec l'éditeur de texte totalement incompétent, l'ergonomie minable, et le logo arduino dans le coin.

    Le runtime, c'est les libraries et autres bouts de code qui font que ton programme est un sketch arduino (dont les initialisations automatiques, toutes les fonctions de base style PinMode, etc). Celui-là est pratique quand on veut choper un code arduino du net et le mettre en marche. Comme je le disais plus haut, on peut tout à fait compiler en utilisant le runtime arduino, un makefile, et un vrai éditeur de texte. C'est beaucoup plus pratique que l'IDE moisi. J'aime bien le runtime arduino pour faire des trucs vite fait.

    > sans compter avec le jeu de pistes pour retrouver le fichier assembleur généré quand
    > on veut l'examiner pour calculer à la louche des temps d'exécution (par exemple).

    Si tu comptes les cycles sur un AVR 8 bits, tu pourrais éventuellement considérer un Cortex-M0, 32 bits, 25-50 MHz, c'est le même prix, mais foutredieusement plus puissant... Dispo chez NXP, ST, etc...

    -----

  2. #32
    lpt1com2

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par Jean-Marie45 Voir le message
    @ lpt1com2
    Ton commentaire sur l'ATXmega n'est absolument pas hors sujet. J'en ai profité pour télécharger la Datasheet de l'ATXmega128D4 et lire les "features". Assez bluffant ! Et le prix est époustouflant. Mais les frais d'envoi ? Et arrives-tu à souder un µC en boitier TQFP ?
    Et encore, l'ATXmega128D4 est un des plus "petits" de la famille (il n'a que 2 USART's). D'autres sont plus étoffés, avec par exemple des ports configurables en DAC.
    Il n'y a plus de versions DIP, mais les boitiers QFP ne posent pas vraiment de problèmes. Il faut juste une panne assez fine, et, surtout, de la tresse à dessouder de bonne
    qualité pour enlever les court-circuits de soudure inévitables. Au début, je craignais de trop les chauffer, mais ils sont vraiment très tolérants. J'en ai même dessoudés en chauffant toutes les pattes en même temps avec de gros patés de soudure. Je les ai ensuite ressoudés sur un autre PCB : aucun souci de fonctionnement !
    Je pensais aussi que le nombre de reprogrammations serait limité (et il faudrait alors le remplacer et donc le dessouder). Mais j'ai toujours une plaquette d'essais avec un ATmega328 que j'ai dû reprogrammer des milliers de fois (je l'ai depuis 3 ans) pour tester divers programmes. Aucun souci non plus de ce côté.

    Pour le prix, oui, c'est embettant chez Farnell, RS, etc... à cause du port. Mais en ce qui me concerne, j'attends d'avoir suffisament de composants à acheter pour atteindre 65€ HT.
    Dans ce cas, le port est gratuit (chez Mouser).
    Dernière modification par Cram 64 ; 22/06/2014 à 17h23. Motif: Réparation [].

  3. #33
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    Effectivement arduino comme terme donne à confusion, parce qu'il est utilisé pour désigner la platforme de développement IDE, aussi bien pour le framework qui est un ensemble de libraries écrites en majorité en C++. Arduino est aussi donné pour désigner la platforme hardware dans ces différentes réalisations (uno, mega, ...) et fabriquants(arduino,funduino,. .).
    Au paravent, 15 ans passés, on ne trouvait pas ďoutils et de cartes à base de microcontroleurs simplifiés et banalisés et disponibles comme on le trouve aujourd'hui.
    Dans mes études en 1998, on avait un kit labvolt à base de 6809 qui pesait 2kilos et gros dans la taille d'une malette de médecin.
    Une carte de type Arduino uno etait de la science fiction.
    Pour tout débutant un arduino (carte, framework et ide) est une bonne platforme pour commencer à apprivoiser les microcontroleurs. Mais cet étape doit être un premier pas pour apprendre la programmation des AVR. Il faut passer a un autre IDE plus puissans. Et developper en C sans le framework arduino.
    Atmel propose Atmel studio 6.2, un IDE de chez microsoft le visual studio, qui permet de développer en C, C++ et en assembleur. Pour la libraries, AVR libc, une open source, approuver par Atmel, est tres riche et c'est la meme que utilise Arduino framework en abstrait. Le compilateur AVR-GCC est basé sur le compilateur GNU Gcc, aussi supporté par ATMEL, et le meme qu'utilise IDE arduino.
    Tous ces outils sont freeware.

  4. #34
    5_cylindres

    Re : De l'Arduino au langage C standard avec AVR Studio

    Salut bobfuck

    Citation Envoyé par bobfuck Voir le message
    Tu as l'air de confondre l'IDE et le runtime arduino.
    Pour moi, l'IDE et les bibliothèques forment un tout, merdique comme tu l'as dit. Les biblis Ar... sont pour la plupart codées avec les pieds, et je rappelle que je suis fainéant, donc si je dois décortiquer chacune d'entre elles avant de les utiliser j'ai plus vite fait d'écrire mes propres fonctions ... et sur mesure !


    Citation Envoyé par bobfuck Voir le message
    Si tu comptes les cycles sur un AVR 8 bits, tu pourrais éventuellement considérer un Cortex-M0, 32 bits, 25-50 MHz, c'est le même prix, mais foutredieusement plus puissant... Dispo chez NXP, ST, etc...
    Encore une fois, je suis fainéant : pas envie de réapprendre un nouveau µC tous les 4 doigts, je commence à bien maitriser les AVR 8 bits, et je les apprécie.

    De plus, je suis comme Harpagon : si toute la chaîne de prog n'est pas gratos, je n'irai pas vers une nouvelle famille.

    Je bosse actuellement avec une Seeeduino Mega V3, dont toutes les broches du 2560 sont câblées contrairement à celles de l'Ar... car j'ai besoin de 4 ICP, sinon j'utiliserais un simple 328 bootloadé à 6€ avec la quincaille qui va autour ... ou carrément une Uno !
    Je bossais avant sur PIC, avec bootloader Bigonoff, mais leurs Flash sont toutes en fin de vie ... c'est ce qui m'a poussé vers Ar...

    Chacun sa façon de voir, celle-ci est la mienne. Si un jour un fabricant me propose un µC ultra-performant avec toute la chaîne de prog gratos, OK je fonce ...

    bye
    F

  5. #35
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Bonjour bobfuck et 5-cylindres
    Je n'avais pas vu vos messages avant de poster le mien.
    Bienvenue home et merci pour vos interventions.
    Je crois que vous avez raison tous les deux. Arduino brille par ses shields innombrables et ses programmes tout faits. C'est ultra rapide pour faire fonctionner un projet mais c'est à peu près nul pour comprendre les µC, apprendre la vraie programmation et débugger du code.




    Je viens de réaliser le petit essai suivant qui va peut-être intéresser 5-cylindres : connecter l'ATmega de ma platine Arduino au PC par l'intermédiaire d'un programmateur externe, donc sans passer par le bootloader.

    Sur ma platine Arduino, il y a un petit connecteur 2x3 pins nommé ICSP. Ce connecteur donne accès aux pins MOSI, MISO et SCK de la communication SPI du µC, à la pin RESET et à l'alimentation 5V et GND (voir image). Ce sont les pins de programmation d'un Atmega par un USBasp ou un AVRisp mkII. Je dispose d'un USBasp bon marché acheté sur eBay. J'ai remplacé son firmware original par un firmware simulant l'AVRisp mkII, ce qui permet de le commander directement de l'intérieur de Studio4. (En laissant le firmware original, il faut commander le programmateur avec AVRdude). J'ai donc fait le montage visible sur la photo ci-dessous. L'Arduino est alimenté par un simple convertisseur 220V AC - 5V DC avec prise USB (simple alimentation sans data). Le PC est raccordé à l'USBasp par un câble USB ordinaire. J'ai dû fabriquer un câble pour connecter la sortie de l'USBasp à la prise ICSP de l'Arduino. Attention ! Je n'ai pas raccordé la sortie 5V de l'USBasp à la pin 5V de l'ICSP sinon j'aurais eu 2 sources d'alimentation. C'était également risqué d'injecter le 5V par l'ICSP et ne pas alimenter l'Arduino par sa prise normale car le régulateur de tension pourrait ne pas aimer d'être alimenté par sa sortie.

    Le résultat de la manipulation est une réussite. La troisième image provient de Studio4 et montre que l'USBasp (se faisant passer pour un AVRisp mkII) a réussi à lire correctement la signature de l'ATmega328P (chaque type d'AVR a une signature propre).
    L'USBasp est donc maintenant en mesure de lire et modifier les fuses et de lire, effacer ou écrire la mémoire flash et la mémoire EEPROM. De même, rien n'empêche d'effacer ou de réécrire le bootloader. Cela veut dire qu'on peut acheter un ATmega nu et en faire un Arduino avec son bootloader ou transformer le µC de la platine Arduino en AVR nu.

    Voilà, c'était une première petite victoire vers l'indépendance !
    Images attachées Images attachées

  6. #36
    5_cylindres

    Re : De l'Arduino au langage C standard avec AVR Studio

    Salut Jean-Marie45

    Supercrotte ! tes expériences m'intéressent au plus haut point mais je n'ai pas accès à tes images : il y a un truc spécial à faire sur ce forum pour accéder à ce type de contenu ?

    En attendant, je relis ton post et j'essaye de tout comprendre. Merci.

    Bye
    F

  7. #37
    gegel62

    Re : De l'Arduino au langage C standard avec AVR Studio

    salut à tous
    pour ce qui est des images, quand je clique dessus je l'ai en grand.

    pour ce qui est de comprendre de quoi il retourne, encore un peu de travail....
    j'en suis encore au point de ne même pas pouvoir poser une question précise sur quoi que ce soit (notamment concernant la simulation et/ou le debug à partir de studio 4. Donc au boulot.

    Bonne soirée !

  8. #38
    bobflux

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par 5_cylindres Voir le message
    Pour moi, l'IDE et les bibliothèques forment un tout, merdique comme tu l'as dit. Les biblis Ar... sont pour la plupart codées avec les pieds, et je rappelle que je suis fainéant, donc si je dois décortiquer chacune d'entre elles avant de les utiliser j'ai plus vite fait d'écrire mes propres fonctions ... et sur mesure !
    Boah, les bibliothèques de l'arduino sont pas merdiques, elles sont, disons, optimisées pour la facilité de développement plutôt que la performance.

    Pour avoir un truc qui marche vite fait, c'est l'idéal.

    Citation Envoyé par 5_cylindres Voir le message
    Si un jour un fabricant me propose un µC ultra-performant avec toute la chaîne de prog gratos, OK je fonce ...
    http://www.embeddedartists.com/products/lpcxpresso

    Tout l'environnement de dév est gratos (avec une limite de 256ko sur la taille du code, ce qui n'est pas gênant). Par contre c'est plus compliqué que l'AVR et il y a moins de doc et de tutos, bien sûr.

    Citation Envoyé par 5_cylindres Voir le message
    Salut Jean-Marie45
    Supercrotte ! tes expériences m'intéressent au plus haut point mais je n'ai pas accès à tes images : il y a un truc spécial à faire sur ce forum pour accéder à ce type de contenu ?
    F
    Faut juste attendre que la modération valide les images.

  9. #39
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello 5-cylindres et gégé,

    Toutes les questions, même les plus basiques, sont valables et j'essayerai d'y répondre dans la mesure de mes possibilités. Mais il est difficile d'aller au-devant des questions et d'y répondre avant qu'elles ne soient posées. Ce qui paraît évident à l'un peut rester obscur à un autre et nous sommes tous alternativement dans le noir et dans la lumière. Donc, SVP, pas de gêne sur le forum. On avance tous ou on reste tous bloqués.

  10. #40
    5_cylindres

    Re : De l'Arduino au langage C standard avec AVR Studio

    Salut bobfuck

    Citation Envoyé par bobfuck Voir le message
    Boah, les bibliothèques de l'arduino sont pas merdiques, elles sont, disons, optimisées pour la facilité de développement plutôt que la performance. Pour avoir un truc qui marche vite fait, c'est l'idéal.
    c'est vrai que pour débuter c'est pas mal fait, mais on n'apprend pas (vraiment) à programmer avec Ar... j'ai 30 ans de prog derrière moi, j'ai débuté sur calculette et 8051, Z80, etc... et ce que je reproche avant à la team Ar... c'est de ne pas diffuser de vrais tutos là-dessus, c'est pourtant la base avant même d'attaquer un quelconque langage.


    je vais de ce pas me renseigner ... putain de forum ! on y est vite guidé, pas comme chez Ar... où je plains les bleus qui se font jeter à la pelle, surtout sur le forum français, que j'ai vidé de mes posts pour cette raison ... et d'autres.


    Citation Envoyé par bobfuck Voir le message
    Faut juste attendre que la modération valide les images.
    ouais, j'ai vu après coup ... ça rejoint ce qu'écrit gegel62 un peu plus haut, sauf que moi j'ai pas dû être assez patient !

    bye
    F

  11. #41
    5_cylindres

    Re : De l'Arduino au langage C standard avec AVR Studio

    >>EDIT de mon post précédent : j'avais pas vu le post de Jean-Marie45, j'étais en train de poster moi-même.
    C'est sûr que toutes les questions sont bonnes, mais il arrive parfois que quand on ne connaît ou ne maîtrise pas un sujet on ne sache pas poser LA question qui permet de se dépatouiller : c'est pour ça que tomber "par hasard" sur une info intéressante permet d'avancer un peu ... c'est ce qui m'est arrivé en découvrant ce topic, qui va certainement m'en apprendre beaucoup.

    Au passage : comme je l'ai écrit plus haut, j'ai 30 ans de prog, que j'enseigne à l'heure actuelle, mais j'ai toujours des trucs à apprendre !

    Sinon, j'ai oublié un mot dans mon premier bout de réponse précédent : "ce que je reproche avant tout à Ar..."

    Bye
    F

  12. #42
    Fred_du_92

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par 5_cylindres Voir le message
    Chacun sa façon de voir, celle-ci est la mienne. Si un jour un fabricant me propose un µC ultra-performant avec toute la chaîne de prog gratos, OK je fonce ...
    J'en connais que deux, en tout cas pour les outils officiels: Atmel et Cypress. J'en connais un troisième qui planche sur le sujet et pas des moindres, mais tout le monde en saura plus en fin d'année.

    Que ce soit Atmel ou Cypress, les outils sont 100% gratuits jusqu'au Cortex-M4 pour Atmel (SAM4xx) et au Cortex-M3 (pSoC5LP) pour Cypress.

    Pour les limitations des autres:
    - NXP fournit LPCXpresso entièrement opérationnel jusqu'à 256ko de code
    - Idem pour Freescale (Codewarrior) mais avec une limite à 64 et 128ko selon le micro (enfin je crois)
    - Microchip de leur côté ne limitent pas la taille de code mais le niveau d'optimisation du code donc au final sa taille et/ou sa vitesse d'exécution

    Voilà pour ceux que je connais, TI, Renesas, Infineon, Silicon Labs, etc, je ne saurai pas dire (et j'ai bien assez à faire avec les autres au-dessus )

  13. #43
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par Jean-Marie45 Voir le message
    @ Mourad
    Je ne parvenais pas à ouvrir les menus comme tu l'avais indiqué, ce qui m'a fait croire que tu avais une version Studio différente des miennes. Je viens de voir que si je ne pouvais accéder aux menus, c'est parce que j'avais ouvert un projet en assembleur et non en GCC. Donc, excuse-moi, c'est moi qui étais à côté de la plaque. Je vais pouvoir faire les manipulations que tu indiques. Je tiens le forum au courant.
    j'ai fais une installation clean sur une machine virtuelle Windows XP, j'ai installé le AVR STUDIO 4.18, Puis la SP3, j'ai décompressé la toolchain AVR_8_bit_GNU_Toolchain_3.4.4_ 1229, j'ai décompressé le zip contenant les ShellUtils ( make.exe et rm.ex et les autres fichiers qui vont avec, surtout les DLL).
    et ca fonctionne très bien sans le plugin Winavr.
    a toit de vérifier et de me répondre.
    merci

  14. #44
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    note: pardonnez moi pour le fichier zip joint au message #27, faites attention il est corrompu. ci joint le fichier zip qui le remplace
    https://drive.google.com/file/d/0B9w...it?usp=sharing

  15. #45
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Merci Mourad pour ton aide.
    Mais j'ai encore besoin de précisions.
    En ouvrant ton lien de Google Drive ci-dessus, on voit 4 fichiers ou 4 répertoires (voir première photo ci-dessous).
    Ces fichiers ont en principe une taille différente. Il s'agit en fait de fichiers compressés. Quand on les décompresse, les 4 fichiers sont identiques et montrent tous le contenu de la deuxième photo ci-dessous : à savoir un répertoire "ShellUtils" contenant un répertoire "bin". Celui-ci contient à son tour les fichiers :
    • libiconv2.dll
    • libintl3.dll
    • make.exe
    • rm.exe
    Ma question est la suivante : où dois-je intégrer ces répertoires ou ces fichiers dans le répertoire "avr8-gnu-toolchain"
    Images attachées Images attachées

  16. #46
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    Mon lien pointe un fichier zip qui contient un répertoire "ShellUtils" contenant un répertoire "bin". Celui-ci contient à son tour les fichiers :
    • libiconv2.dll
    • libintl3.dll
    • make.exe
    • rm.exe

    Tu le decompresses dans le répertoires de votre choix avec tous son contenance( le répertoire shellutils en complet), tu peux le metre par exemple dans le même répertoire que "avr8-gnu-toolchain".
    Tu configures apres AVR Studio en lui montrant où le chemin de avr-gcc.exe de la toolchain, et aussi le chemin de make.exe

  17. #47
    gegel62

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par lpt1com2 Voir le message
    Pour le prix, oui, c'est embettant chez Farnell, RS, etc... à cause du port. Mais en ce qui me concerne, j'attends d'avoir suffisament de composants à acheter pour atteindre 65€ HT.
    Dans ce cas, le port est gratuit (chez Mouser).
    bonsoir tous,
    A la relecture de ce post, je signale pour info, et sous réserve qu'ils n'aient pas modifié leur politique (je n'ai pas commandé là depuis 6 mois), que chez RS le port pour les particuliers est gratuit pour les commandes passées durant le WE. J'essaie toujours d'en profiter, en regroupant s'il le faut plusieurs achats afin d'atteindre un certain montant. (Toujours sous la même réserve, il n'y a pas de montant mini de commande).

    bonne soirée

  18. #48
    lpt1com2

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par gegel62 Voir le message
    bonsoir tous,
    A la relecture de ce post, je signale pour info, et sous réserve qu'ils n'aient pas modifié leur politique (je n'ai pas commandé là depuis 6 mois), que chez RS le port pour les particuliers est gratuit pour les commandes passées durant le WE. J'essaie toujours d'en profiter, en regroupant s'il le faut plusieurs achats afin d'atteindre un certain montant. (Toujours sous la même réserve, il n'y a pas de montant mini de commande).

    bonne soirée
    Bonsoir,
    Merci pour cette info intéressante, en espérant en effet qu'elle soit toujours valide.
    Je ferai bientôt le test !

  19. #49
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    @ Mourad
    Merci beaucoup pour toutes tes précisions. J'ai fait le changement pour Studio 4 et ça fonctionne très bien.
    Pour Studio 6.2, le logiciel est déjà fourni avec la dernière version de AVR-GCC. Donc, il n'y a rien à faire.
    J'ai par ailleurs eu l'agréable surprise de constater que mon USBasp transformé en clone d'AVRisp mkII est à nouveau reconnu par Studio 6.2 alors qu'il ne fonctionnait pas sur Studio 6.1 (probablement un bug de 6.1).

    A propos, Studio 6.2 est une usine à gaz surtout quand on lance le programme. Il faut pas mal de temps pour que l'écran de travail apparaisse. Par contre, il est nettement plus rapide qu'Arduino pour compiler un programme et le charger dans le µC. Je vais donc probablement continuer à travailler avec Studio 6.2, d'autant plus que mon Atmel-ICE nécessite la version 6 de Studio.

    Je me suis amusé à faire une petite comparaison entre le programme blink.ino de l'Arduino et sa transformation en C standard dans Studio 6 (cfr photo ci-dessous). Regardez la taille des deux programmes.

    Par contre, il y a quelque chose que je ne m'explique pas jusqu'ici. Dans le code compilé avec Studio 6, la led clignotte environ 10 fois plus vite. Donc, pour obtenir un toggle toutes les secondes, je dois indiquer un delay de 10.000 ms. Par contre, le même code copié dans Studio 4 donne un toggle toutes les 10 secondes. Quelqu'un a-t-il la clé du mystère ?




    @ gégé et lpt1com2
    Je ne sais pas si Farnell France suit la même politique que Farnell Belgique mais en Belgique les conditions de vente aux particuliers se résument à ceci : il faut atteindre un minimum de 50 € hors TVA. L'envoi est gratuit. (sauf si la pièce est aux USA).
    Images attachées Images attachées  

  20. #50
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Ah, j'ai oublié de vous préciser que lorsque je programme le µC de l'Arduino par le port ICSP, le bootloader Arduino est effacé. Avant de réutiliser l'IDE Arduino pour programmer, il faut d'abord recharger le bootloader d'origine par le port ICSP.

    Tous les bootloaders d'Arduino se trouvent dans le répertoire "C:\Program Files\Arduino\hardware\arduino \bootloaders".
    Pour mon Arduino UNO R3, le bootloader est le suivant : "C:\Program Files\Arduino\hardware\arduino \bootloaders\optiboot\optiboot _atmega328.hex".

    Pour l'essai ci-dessus, je n'avais pas rechargé le bootloader, ce qui explique l'erreur "avrdude: stk500_getsync(): not in sync: resp=0x00"

  21. #51
    mimoon1

    Re : De l'Arduino au langage C standard avec AVR Studio

    Bonjour a tous me voici parmis vous avec malheureusement peu de temps mais plein
    D'entousiasme.

  22. #52
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par Jean-Marie45 Voir le message
    @ Mourad
    Je me suis amusé à faire une petite comparaison entre le programme blink.ino de l'Arduino et sa transformation en C standard dans Studio 6 (cfr photo ci-dessous). Regardez la taille des deux programmes.

    Par contre, il y a quelque chose que je ne m'explique pas jusqu'ici. Dans le code compilé avec Studio 6, la led clignotte environ 10 fois plus vite. Donc, pour obtenir un toggle toutes les secondes, je dois indiquer un delay de 10.000 ms. Par contre, le même code copié dans Studio 4 donne un toggle toutes les 10 secondes. Quelqu'un a-t-il la clé du mystère ?
    tu as mis dix seconde dans le delay:
    int Time = 10000; // ca fais 10 mille millisecondes = 10 secondes.
    tu dois aussi redefinir la constante F_CPU avant l'include de delay.h:
    #F_CPU 16000000
    #include <util/delay.h>

    ta version de blink est la plus minimaliste en code sans timer ni interuption. bravo


    pour la manipulation d'intégrer la dernière toolchain à avr-studio, tu peux la reformuler avec une Français plus claire, parce que moi j'ai du mal la décrire

  23. #53
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    voila ma version de Blink n1 :
    Code:
    /*	Blink.c	*/
    
    // frequence du CPU
    #define F_CPU 16000000
    #include <avr/io.h>
    #include <util/delay.h>
    
    #define Led13 PB5
    #define LedToggle PORTB ^= 1 << Led13; 
    
    
    int main(void)
    {
    	DDRB |= 1 << Led13;
    	
    	// boocle principale
    	for(;;)
    	{
    		// toggle led 13
    		LedToggle;
            // blink 0.5Hz
    		_delay_ms(1000);
    	}
    }
    resutat de la compilation( release) :
    Program Memory Usage : 156 bytes 0,5 % Full
    Data Memory Usage : 0 bytes 0,0 % Full

  24. #54
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    la c'est une version avec Timer et Interuption, je sais que peu de vous vont la survoler, et beaucoup vont la sauter :
    Code:
    /*	Blink2.c	*/
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    
    #define Led13 PB5
    #define LedToggle PORTB ^= 1 << Led13;
    uint8_t volatile count;
    
    int main(void)
    {
    	DDRB |= 1 << Led13;
    	
    	// Prescaler = FCPU/1024 = 16Mh/1024 = 15625 Hz
    	TCCR0B|=(1<<CS02)|(1<<CS00);
    	//Enable Overflow Interrupt Enable
    	TIMSK0|=(1<<TOIE0);
    	//Initialize Counter
    	TCNT0=0;
    	//Enable Global Interrupts
    	sei();
    	
    	// boocle principale vide pour faire quelque chose a part clignoter une led à 0.5Hz
    	for(;;)
    	{
    	}
    }
    
    ISR(TIMER0_OVF_vect)
    {
    	// interrupt service routine pour  TIMER0 OVERFLOW Interrupt.
    
    	++count;
    	// 15625 / (61 * 256) = 1,0006 Hz
    	if(count==61)
    	{
    		LedToggle;
    		count=0;
    	}
    }
    Task "RunOutputFileVerifyTask"
    Program Memory Usage : 224 bytes 0,7 % Full
    Data Memory Usage : 1 bytes 0,0 % Full

  25. #55
    Fred_du_92

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par mkh.mourad Voir le message
    la c'est une version avec Timer et Interuption, je sais que peu de vous vont la survoler, et beaucoup vont la sauter :
    Dommage de refaire un count dans le timer, ça annule un peu l'intérêt du timer (d'ailleurs la taille de code est plus importante).

    Je n'ai pas fait l'essai, mais en mettant le prescaler d'horloge à 256, on a une horloge système à 62500 Hz. Reste plus qu'à utiliser un timer 16 bits avec une ré-init de compteur à 62500 pour obtenir la cadence de 1Hz requise.

    Le reste du temps, le micro pourra être mis en sommeil.

  26. #56
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello mimoon, bienvenue parmi nous.

    Si tu as peu de temps, il faudra courir aussi vite que ton homonyme Mimoun.
    Laisse Studio 6.2 ouvert, tu gagneras le temps de la mise en route




    @Mourad
    Merci pour ton code et pour l'explication du problème avec delay. J'avais essayé de définir la fréquence mais j'avais mis le #define F_CPU après l'#include delay.h et cela n'avait pas d'effet sur le comportement du programme.

    Ton code est bien plus clair que le mien grâce à #define Led13 PB5. On voit immédiatement que ta Led est sur le PortB 5.
    Une petite bizarrerie : tu as compilé ton code avec Studio 4 et il fait 156 bytes. Quand je le compile avec Studio 6.2 il fait 162 bytes. Mais je sais qu'il y a un paramètre d'optimisation du code quelque part. C'est peut-être l'explication.

    Je n'ai pas encore examiné ton code avec le timer. Je dois aller faire une course puis je l'examine à mon retour.

  27. #57
    5_cylindres

    Re : De l'Arduino au langage C standard avec AVR Studio

    Salut à tous
    je viens de lire vos posts des 2 derniers jours, miam-miam !

    pour la version 6.2, puisqu'elle tourne bien chez Jean-Marie45 je vais me dépêcher de l'installer, même si la 6.1 tourne bien chez moi.

    on peut encore optimiser le toggle : sur les AVR, on inverse une sortie en écrivant '1' sur le bit du port concerné, ça ne touche pas les autres bits --> PINB = 32 ; suffit à faire le toggle du bit 5 du port B.

    assez intéressé par le "faux" AVRisp mkII mais je ne veux pas prendre de risque pour l'instant, je garde XLoader.

    @ bobfuck et @ Fred_du_92 :
    quand je disais toute la chaîne, je voulais dire aussi les programmateurs physiques, pas seulement les softs.

    à bientôt
    F

  28. #58
    Fred_du_92

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par 5_cylindres Voir le message
    @ bobfuck et @ Fred_du_92 :
    quand je disais toute la chaîne, je voulais dire aussi les programmateurs physiques, pas seulement les softs.
    Bref, le beurre, l'argent du beurre et le fondement de la crémière.

  29. #59
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello Mourad

    J'ai examiné ton code avec le Timer.
    Bien sûr, comme le dit Fred, la taille du code est moins avantageuse. Par contre, il y a des choses intéressantes à relever.
    La première chose, c'est qu'avec le C standard on peut utiliser le Timer0 alors qu'Arduino le kidnappe à son compte.
    La deuxième chose, relevée par Fred, est qu'on peut mettre le µC en veille pendant tout le temps du delay. Très intéressant si on fonctionne sur batterie.

    --------------------------------------------

    En ce qui concerne l'intégration de la dernière version de Tool Chain à Studio4 :
    Citation Envoyé par Mourad
    pour la manipulation d'intégrer la dernière toolchain à avr-studio, tu peux la reformuler avec une Français plus claire, parce que moi j'ai du mal la décrire
    Je ne suis pas sûr de pouvoir expliquer les choses plus clairement. Enfin, je vais donner ma version et s'il y a encore des questions, on est là pour y répondre.
    1. Télécharger la dernière version de AVR-GCC (de 2014) déjà renseignée par Mourad.
    2. Lancer le fichier avr8-gnu-toolchain-installer-3.4.4.24-win32.any.x86.exe. Il va s'auto-décompresser dans un fichier XYZ de votre choix.
    3. Ceci crée dans XYZ un répertoire ou dossier nommé "avr8-gnu-toolchain".
    4. Télécharger l'un des quatre fichiers ShellUtils dont l'adresse a aussi été donnée par Mourad.
    5. Décompresser le fichier "GNU_ShellUtils.zip" dans le répertoire "avr8-gnu-toolchain".
    6. Comparer le contenu du répertoire "avr8-gnu-toolchain" avec la photo ci-dessous.
    7. Ouvrir un programme en C dans Studio 4
    8. Suivre les indications données par Mourad dans le message #23 et pointer les paramètres vers les fichiers avr-gcc.exe et make.exe situés dans les répertoires montrés par les flèches rouges.
    Images attachées Images attachées  

  30. #60
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par Fred_du_92 Voir le message
    Dommage de refaire un count dans le timer, ça annule un peu l'intérêt du timer (d'ailleurs la taille de code est plus importante).
    Je n'ai pas fait l'essai, mais en mettant le prescaler d'horloge à 256, on a une horloge système à 62500 Hz. Reste plus qu'à utiliser un timer 16 bits avec une ré-init de compteur à 62500 pour obtenir la cadence de 1Hz requise.
    Le reste du temps, le micro pourra être mis en sommeil.
    AVR de l'Arduino uno, le 328p, n'as qu'un timer 16bits le TIMER1, et deux de 8bits TIMER0 et TIMER2. donc je préfère utiliser un time 8bits plutôt que de sacrifier le 16bits. j'ai utilisé le TIMER0, comme ca on a les deux timers : TIMER2 (8bits) et TIMER1(16bits) libres.

    @ Jean-Marie: merci , c'est très claire avec la photo explicative.
    Dernière modification par mkh.mourad ; 24/06/2014 à 13h57.

Page 2 sur 21 PremièrePremière 2 DernièreDernière

Discussions similaires

  1. Arduino anti rebond avec arduino
    Par sari12 dans le forum Électronique
    Réponses: 13
    Dernier message: 23/10/2014, 17h04
  2. Stopper une boucle - Langage Arduino.
    Par Baliethecat dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 10/04/2014, 06h31
  3. Communication arduino-arduino avec module Xbee
    Par TPESI22012 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/12/2013, 17h24
  4. Utiliser un Arduino UNO R3 avec ATMEL Studio 6
    Par HAYAC dans le forum Électronique
    Réponses: 2
    Dernier message: 27/07/2012, 14h12
  5. Réponses: 15
    Dernier message: 19/07/2012, 22h53
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...