[Programmation] Utilisation de type Uint16 avec le compilateur ATMEL STUDIO
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Utilisation de type Uint16 avec le compilateur ATMEL STUDIO



  1. #1
    pic_et_pac

    Utilisation de type Uint16 avec le compilateur ATMEL STUDIO


    ------

    Bonjour
    Je me heurte à l'utilisation d'une variable en uint16_t impossible de la déclarer dans une fonction!
    Après plusieurs essais divers et variés j'ai trouvé qu'une seul manière pour pouvoir en disposer c'est de la déclarer hors des fonction pour être en global!
    dans les exemples ATMEL c'est aussi le cas, par contre ils utilisent des (u)int32_t en déclaration local! (je n'ai pas testé l'exemple).
    j'avoue que je ne comprend pas. Savez vous si c'est une limitation intrinsèque du système ou un problème de paramétrage du compilateur?
    De même je ne vois pas les valeurs déclarées en #define bizarre et pas très pratique. Là aussi un problème de configuration de la suite ATMEL STUDIO?

    Pour info j'utilise la dernière version d' ATMEL studio, un ATXMEGA256, une sonde JTAG ICE3 et à l'ouverture du projet dans ATMEL STUDIO j'ai pris la définition correspondant à la réalisation d'un projet en C.
    D'avance merci pour l'aide.

    -----

  2. #2
    bobflux

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Et quel est le message d'erreur donné par le compilateur ?

  3. #3
    pic_et_pac

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Bonsoir
    je n'ai pas d'erreur à la compilation mais c'est comme si la ligne de code n'était pas prise en compte. Quand je passe ma souris sur la variable j'ai un truc du style 'unknow variable' qui s'affiche au lieu de sa valeur et c'est la même chose pour tous les éléments issus des #defines mais par contre ce n'est pas gênant cela fonctionne.
    J'avais fait une copie d'écran pour illustrer le pb mais malheureusement je ne l'ai pas avec moi.
    En plus je travail pour des raisons de sécurité professionnel hors réseau donc je n'ai pas accès à l'aide de ATMEL.
    Je vais aller sur leur site pour voir s'il en parle qques part

  4. #4
    bobflux

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Il doit bien y avoir un warning à la compilation...

    Vérifie que tous les warnings sont activés.

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Si la variable est déclarée mais pas utilisée, le compilateur peut décider de ne pas créer cette variable. Est-ce que la variables est utilisée dans ta fonction?

  7. #6
    pic_et_pac

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Oui peut être je vais vérifier mais je pense qu'il le sont car j'ai pris l'outil comme ça.
    Mais pourquoi la variable est 'opérationnelle' si elle est en global?
    J'ai demandé à un collègue informaticien (un bon pas de mon niveau raz de pâquerette) il ne voit pas, de prime abord, d'erreur dans le code il penche pour un pb de compilation et/ou de configuration de la suite ATMEL.

  8. #7
    pic_et_pac

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Une dernière chose qui a peut être une importance.
    La routine qui ne prend pas mon Uint16 sert a lire la RTC16 du µC et j'appelle cette routine depuis une fonction issue d'une interruption (ISRxxx) c'est peut la structure de ce type de fonction qui à des contraintes ?

  9. #8
    Jack
    Modérateur

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Ca serait peut-être plus simple si tu nous montrais le code de ta fonction.

  10. #9
    indri

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Bête question: tu as bien rajouter le
    #include <avr/pgmspace.h>
    ??
    (à moins que sois plus utile dans atmel studio, (je suis encore sur avrstudio 4^^))
    Là où va le vent...

  11. #10
    pic_et_pac

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Merci pour les réponses.
    non je n'ai pas le #include <avr/pgmspace.h> quel est son utilité, de la gestion de mémoire?
    En tout cas j'ai trouvé l'origine du problème. En fait ma variable ne servait pas, je faisais juste un calcul que je lui affectait pour vérifier mon code et apparemment le compilateur (qui me le disait en warning) supprime la ligne de code à la compile si il trouve qu'elle ne sert à rien.
    J'ai même constaté qu'il fait l'allocation de la mémoire pour la variable uniquement au moment où on l'utilise. J'ai pour habitude de faire les déclarations en début de fonction et là je vois que lors du passage pas à pas en plein milieu du code au moment où j'utilise la variable je séquenceur pas à pas fait un saut à la ligne de déclaration avant de revenir sur la ligne pour exécuter la commande.
    Pour fournir le code c'est un peu compliqué car je travail en local sécurisé donc pas de sortie de code ou alors c'est un peu galère à faire. Ce que je fais n'est pas particulièrement sensible mais comme le local est classé ainsi tout ce qui est fait dedans est géré de la même façon.
    Donc de problème est résolu!

  12. #11
    Jack
    Modérateur

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    En tout cas j'ai trouvé l'origine du problème


    Comment çà, tu as trouvé...
    Je n'attendais pas une statue, mais un petit merci aurait suffit.

  13. #12
    pic_et_pac

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Toutes mes excuses JACK je suis passé à coté de ton message quand j'ai écrit:
    Oui peut être je vais vérifier
    je répondais à Bobfuck et du coup je n'ai vu que ton message sur ta demande de code! Je suis navré .
    Donc pas de statue mais un grand merci pour ta remarque toute à fait juste.
    quoique celle ci te convient elle:
    Nom : JACK.jpg
Affichages : 94
Taille : 145,4 Ko
    Nota: J'utilise surtout MATLAB et j'avoue que toutes ces subtilités de compilation me dépassent largement.

  14. #13
    bobflux

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Citation Envoyé par pic_et_pac Voir le message
    En fait ma variable ne servait pas, je faisais juste un calcul que je lui affectait pour vérifier mon code et apparemment le compilateur (qui me le disait en warning) supprime la ligne de code à la compile si il trouve qu'elle ne sert à rien.
    OK
    Faut toujours regarder les warnings...

    Si tu veux faire ça, utilise le mot-clé volatile, ou désactive l'optimiseur, soit sur tout le programme, soit juste sur la fonction.

    Citation Envoyé par pic_et_pac Voir le message
    J'ai même constaté qu'il fait l'allocation de la mémoire pour la variable uniquement au moment où on l'utilise. J'ai pour habitude de faire les déclarations en début de fonction et là je vois que lors du passage pas à pas en plein milieu du code au moment où j'utilise la variable je séquenceur pas à pas fait un saut à la ligne de déclaration avant de revenir sur la ligne pour exécuter la commande.
    Normalement si il a supprimé la variable, il ne l'allouera pas du tout. Simplement, quand tu actives les optimisations, comme les instructions sont réordonnées pour plus d'efficacité, le debugger s'y perd. En général les watch et autres sont difficiles à gérer.

  15. #14
    Jack
    Modérateur

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    Citation Envoyé par pic_et_pac Voir le message
    Toutes mes excuses JACK je suis passé à coté de ton message quand j'ai écrit:
    je répondais à Bobfuck et du coup je n'ai vu que ton message sur ta demande de code! Je suis navré .
    Donc pas de statue mais un grand merci pour ta remarque toute à fait juste.
    quoique celle ci te convient elle:
    Pièce jointe 308916
    Nota: J'utilise surtout MATLAB et j'avoue que toutes ces subtilités de compilation me dépassent largement.
    tu peux m'envoyer la bouteille qui va avec ?

  16. #15
    pic_et_pac

    Re : Utilisation de type Uint16 avec le compilateur ATMEL STUDIO

    tu peux m'envoyer la bouteille qui va avec ?
    Dans ce cas je t'envoie aussi mon projet à réaliser
    En tout cas si l'occasion se présentait un apéro serait sans problème bon il faut passer Normandie! par contre je suis plus attiré par le rhum ou le whisky japonnais

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/05/2015, 14h52
  2. Atmel studio 6 et librairies
    Par flyingrock dans le forum Électronique
    Réponses: 1
    Dernier message: 01/05/2015, 10h06
  3. Atmel Studio 6 et date/heure de compilation
    Par abracadabra75 dans le forum Électronique
    Réponses: 0
    Dernier message: 08/01/2015, 10h15
  4. Programme ATMEL STUDIO & AVR MK2
    Par inviteb96e090d dans le forum Électronique
    Réponses: 0
    Dernier message: 02/11/2012, 13h52
  5. Utiliser un Arduino UNO R3 avec ATMEL Studio 6
    Par HAYAC dans le forum Électronique
    Réponses: 2
    Dernier message: 27/07/2012, 14h12
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...