bonsoir,
j'écris un programme sous c18 et mplab 8 pour commader un
ad9851 (dds) en mode série.
pour ce faire j' ai besoin de lui envoyer 40bits à la suite.
j'ai donc créé un union d'un champ de 40bits et d'un unsigned char (pour faire de l'adressage indirect sur la premiére adresse des 40bits )grace à une structure déclaré en entête de mon fichier main.c .
jusque ici tout marche bien.
j'ai besoin d'utiliser ce champ dans une autre fonction dans un autre fichier user.c , en toute logique la premiére compilation ,message d'erreur : simbol "machin" non défini.
logique vue que mon champ n'est pas défini danc user.c .
j' ai donc voulue créer mon champ dans un fichier main.h que je met en include dans mes fichiers main.c et user .c ( je me suis inspiré du fichier 18f2420.h définnissant par exemple les bits des port : PORTBbits.RB)
et là à la compilation j' ai un message d'erreur de mplink :
MPLINK 4.1, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - symbol 'serial' has multiple definitions.


pour résoudre mon probléme je suis obliger de réer le champ sous main.c et sous user .c de le recéer en extern : extern union......

je voudrai essayer de faire quelque chose de plus élégant et de plus facile à utiliser, si vous avez quelques idées à me proposer .
en espérant avoir été asser complet, merci par avance .
@+