Déclaration variable en C
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Déclaration variable en C



  1. #1
    invite3c35244f

    Déclaration variable en C


    ------

    Bonjour,

    après avoir fait quelques recherches, j'ai trouvé 2 façons différentes pour déclarer un bit d'un port:

    #bit INHIBIT =PORTD.3
    ou
    #define INHIBIT PORTDbits.RD3

    laquelle est la plus utilisée en C

    Je vous remercie

    Nicolas

    -----

  2. #2
    gienas
    Modérateur

    Re : Déclaration variable en C

    Bonjour Nicolas et tout le groupe

    Je ne suis pas sûr de répondre précisément à ta question.

    Cependant, de ce que je sais du C, ta deuxième "alternative" est en fait un synonyme, que tu définis, pour faciliter l'écriture.

    #define c'est le mot clef pour déclarer ce qui suit

    INHIBIT est la chaîne que tu désires utiliser, pour remplacer celle qui suit.

    Tout ceci est bien sûr case sensitive, c'est à dire distigue majuscules des minuscules.

    C'est le compilateur qui fera les remplacements, au moment du traitement.

  3. #3
    invite3c35244f

    Re : Déclaration variable en C

    Ce que je souhaite faire, c'est attribué un nom (ici INHIBIT)au bit d'un port(ici le bit RD3 du port D) de mon PIC.
    Mais les deux expressions sont-elles correctes?
    Je pensai utiliser celle-ci:

    #bit INHIBIT =PORTD.3

    Merci pour ta réponse Gienas.

  4. #4
    Seb.26

    Re : Déclaration variable en C

    Comme te l'a expliqué gienas, un #define n'est pas une declaration reel, mais juste un alias, rien n'est ajouté dans le code generé, ton #define sera d'ailleur traité par le pre-processeur, et non pas par le compilateur lui même.

    #bit INHIBIT =PORTD.3 n'est je pense pas une notation C normalisée.

    Normalement on utilise :

    Code:
    struct registre_8b
    {
      unsigned bit0:1;
      unsigned bit1:1;
      unsigned bit2:1;
      unsigned bit3:1;
      unsigned bit4:1;
      unsigned bit5:1;
      unsigned bit6:1;
      unsigned bit7:1;
    };
    Le type bit n'existe pas à ma connaissance en C, dans le cas de variable binaire, on utilise le type "bool" ( qui sera alors implementé par le compilateur selon les specificités du CPU ciblé )

    [Edit] dans ton cas, tu souhaite faire un alias, mais pas declarer une nouvelle variable si j'ai bien compris ...

  5. A voir en vidéo sur Futura
  6. #5
    invite5637435c

    Re : Déclaration variable en C

    Citation Envoyé par jorg1n Voir le message
    Ce que je souhaite faire, c'est attribué un nom (ici INHIBIT)au bit d'un port(ici le bit RD3 du port D) de mon PIC.
    Mais les deux expressions sont-elles correctes?
    Je pensai utiliser celle-ci:

    #bit INHIBIT =PORTD.3

    Merci pour ta réponse Gienas.
    Bonsoir,

    pour compléter Gienas, un #define permet de créer un "Alias" c'est à dire un terme plus explicite permettant dans ton cas de mieux "visualiser" son rôle dans le corps d'un programme.

    PORT.D3 sera remplacé par INHIBIT, comme PORT.D3 représente l'entrée/sortie 3 du port D son état ne peut prendre que 1 ou 0.
    L'écriture #bit INHIBIT =PORTD.3 ne permet pas le = en C.

    Edit: grillé par Seb26 plus rapide... je n'avais pas lu sa réponse, désolé pour le doublon

  7. #6
    invite5637435c

    Re : Déclaration variable en C

    Attention quand même, tout les compilateurs C ne permettent pas l'usage général d'une variable de type bit.

  8. #7
    invite3c35244f

    Re : Déclaration variable en C

    Je commence a y voir plus clair...

    Je vous remercie pour vos réponses

  9. #8
    invite3c35244f

    Re : Déclaration variable en C

    En fait...si j'ai bien compris, il faut d'abord déclarer les ports d'entrées/sorties et ensuite par le biais de cette commande #bit INHIBIT =PORTD.3 , j'affecte un nom au bit que je souhaite( histoire d'y voir un peu plus clair dans mon programme...)

    Merci encore

    Nicolas

Discussions similaires

  1. Statistiques : lien entre variable binaire et variable continue
    Par invitecf228342 dans le forum Mathématiques du supérieur
    Réponses: 17
    Dernier message: 10/02/2010, 21h34
  2. Déclaration Variable C
    Par invite3c35244f dans le forum Électronique
    Réponses: 6
    Dernier message: 16/10/2007, 19h01
  3. [Législation] Déclaration de site archéologique
    Par invitef8b35647 dans le forum Archéologie
    Réponses: 3
    Dernier message: 13/02/2007, 14h19
  4. La déclaration célèbre de Feynman et vous
    Par merou dans le forum Physique
    Réponses: 16
    Dernier message: 03/08/2005, 00h15
  5. pb de declaration
    Par invitea3a83812 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 13/08/2004, 23h20
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...