Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MPLAB Discussion :

Comment faire de bons #Include


Sujet :

MPLAB

  1. #1
    Nouveau membre du Club
    Comment faire de bons #Include
    Bonjour,

    J'ai un petit soucis, tout bête, mais qui m’empêche de compiler...

    J'ai créé des headers avec différents prototypes et autres, fichiers dans lesquels j'ai bien inclus le code :
    Code c :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #ifndef DECLARATIONS_H
    #define DECLARATIONS_H
     
    ...
    ...
     
    #endif


    Mais après je comprend pas comment le compilateur me les gère à la compil.

    Dans mon main.c, j’inclus mon header
    Code c :Sélectionner tout -Visualiser dans une fenêtre à part
    #include "Declarations.h"


    Mais dans un autre fichier.c, j'ai besoins de ce même header, je refais donc le même include et là il m'annonce que j'ai de multiples définitions.

    Donc ma question est surtout comment faire un include proprement ?

    Merci pour votre aide !

  2. #2
    Nouveau membre du Club
    xc16 qui cause problème
    Ok alors avec le compilateur xc32 mon code fonctionne mais sur xc16 aucun moyen de compiler.


    Alors dans mon main.c, j'ai :
    Code c :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include "Declarations.h"
    void main()
    {
       InitVariables();
    }



    Dans mon Declarations.c, j'ai :
    Code c :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include "Declarations.h"
    void InitVariables ()
    {
       gCpt = 0;
    }



    Dans mon Declarations.h, j'ai :
    Code c :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #ifndef DECLARATIONS_H
    #define	DECLARATIONS_H
     
    char gCpt;
     
    void InitVariables ();
     
    #endif





    Vus avez pas une idée de comment je peux faire ?


    Je souhaite exécuter une fonction qui se lance toutes les 100ms.
    Pour cela, j'ai une interruption toutes les 10ms dans laquelle j'incrémente un compteur. une fois ce compteur à 10, j'exécute ma fonction !

    J'ai besoins que ce compteur soit une variable globale du coup mais si vous avez mieux je prend !

    Merci pour votre aide !

  3. #3
    Nouveau membre du Club
    Bon pour ceux qui veule la réponse.

    Il faut mettre le mot clé "extern" devant la déclaration de la variable globale.

    Et redéclarée la variable dans le source (Declarations.c)