Déclarer une variable pr faire appel à valeur de port
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Déclarer une variable pr faire appel à valeur de port



  1. #1
    Platipu$

    Question Déclarer une variable pr faire appel à valeur de port


    ------

    Bonjour à tous,

    Je programme en C sur MikroC sur PIC (en ce moment un 18F4550)
    Mon problème est que je programme sur platine de test et que lorsque je vais passer mon prog sur platine finale, les emplacements des E/S ne seront pas éxactement les même, et je ne souhaite pas tout réécrire en remplaçant tout.

    Pour ce faire, je souhaite savoir s'il est possible d'utiliser un nom de variable dans mon programme et d'initialiser celle-ci avec un variable du PIC, par exemple quelquechose du type :
    Code:
    #define MaVariable PORTA.F0
    Comme ça j'utilise
    Code:
    MaVariable
    dans le code, et si je décide que ma valeur n'est plus sur le bit0 du PortA, je remplace juste
    Code:
    PORTA.F0
    et ça m'évite d'avoir à remplacer les x occurences dans le code.

    Est-ce possible ? Si oui comment ?

    P.S. : J'ai essayé ça qui ne marche pas :
    Code:
    Int *MaVariable,
    MaVariable = &PORTA.F0
    mais ça ne marche pas, il accepte pas le & devant

    Mikaël.

    -----

  2. #2
    r4ph

    Re : Déclarer une variable pr faire appel à valeur de port

    Bonjour,

    Je connais pas microC mais c'est possible et meme conseille de nommer les ports par un define, ne serait-ce que pour une lecture plus aisee du programme.

    le #define en revanche n'est pas une variable mais une directive au compilateur que va simplement remplacer MaVariable par PORTA.F0
    comme un traitement de texte dans le code. Ideal aussi pour des "constantes" si tu veux pas qu'elle prennent de la place en data.

    Du coup, pourquoi faire appel a ton port avec le & ? A priori pas besoin, c'est pas un pointeur sur le port, essaye sans!

    Bonne chance!

  3. #3
    Platipu$

    Re : Déclarer une variable pr faire appel à valeur de port

    Oui, mais le problème (j'ai oublié de préciser), c'est la syntaxe que j'ai mise en post avec le define ne fonctionne pas. (d'où le fait d'avpir essayé avec un pointeur)
    Je suis aussi convaincu que le define est le mieux, mais j'ai apparemment pas la bonne syntaxe.

  4. #4
    r4ph

    Re : Déclarer une variable pr faire appel à valeur de port

    Si tu es deja famillier en C et avec les PICS ce qui semble le cas, va chercher MPLAB et un compilateur C genre HiTech en version gratuite. Perso je connais pas mikroC, mais hi tech gratuit sans optimisation de code suffit pour mes petits bricolages. Et le #define y fonctionne fort heureusement.

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

    Re : Déclarer une variable pr faire appel à valeur de port

    Merci pour ta réponse r4ph. Perso, je préfère rester sur MikroC, qui me permet, avec ma platine de test, de faire du debuguage assez simplement.
    Par contre, j'ai trouvé une piste en utilisant l'opérateur "at" :
    Bit Test at RA0_bit semble fonctionner. Peut-etre est-ce spécifique à mon compilateur... Je vais tester.

  7. #6
    r4ph

    Re : Déclarer une variable pr faire appel à valeur de port

    Tres probablement tributaire de compilateur!

Discussions similaires

  1. Faire appel à plusieurs tableau dans une même fonction
    Par krimo-30 dans le forum Électronique
    Réponses: 2
    Dernier message: 09/05/2011, 10h57
  2. [PIC] PORTB,VAR ? (choisir le no du port avec une variable)
    Par Mkala dans le forum Électronique
    Réponses: 5
    Dernier message: 20/02/2010, 11h18
  3. [Antiquité] Déclarer une découverte dans l'Aude
    Par kiko2 dans le forum Archéologie
    Réponses: 8
    Dernier message: 25/08/2008, 21h53
  4. Faire varier une tension avec un port Imprimante (Par ex)
    Par o0Zz dans le forum Électronique
    Réponses: 17
    Dernier message: 21/07/2007, 18h32
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...