Configurer les registres d'un PIC18F en C

Configurer les registres d'un PIC18F en C - C - Programmation

Marsh Posté le 28-09-2013 à 18:33:05    

Bonjour à tous,
Depuis quelque temps je me suis mis à essayer de programmer un PIC 18F452 en langage C.
Après pas mal de correction je "tombe" sur un problème certainement très simple à résoudre
mais je ne trouve pas la solution pour initialiser le registre INTCON en C
avec l'instruction suivante :
INTCON = 0b00101000;
ou
INTCON = 0x28;
ou encore
INTCON,7,0;
INTCON,6,0;
etc..
 
J’obtiens la réponse suivante "Error: syntax error"
Je ne vois pas ce qui n'est pas conforme au C ou au compilateur.
Je ne trouve pas d'exemple de syntaxe concernant ces registres ou similaires.
 
Configuration:
MPLAB IDE v8.89
 
Avec le Pack MCC18 ci dessous
MPASM v3.36
MPLINK v4.47
MCC18 v3.36
Librarian v4.37
 
Pouvez-vous m'indiquer mon erreur.
Merci d'avance, cordialement


Message édité par mandrin7 le 29-09-2013 à 18:53:52
Reply

Marsh Posté le 28-09-2013 à 18:33:05   

Reply

Marsh Posté le 28-09-2013 à 21:10:08    

Bonjour !
 
Dans un fichier .h, il doit y avoir un #define INTCON quelquechose
 
Une fois INTCON remplacé dans votre code, cela doit donner une erreur de syntaxe.
 
Selon moi, vous n'utilisez pas correctement ce INTCON ...
 
Ou alors c'est vous qui le déclarez, mais dans ce cas-là, indiquez comment vous faites cette déclaration
 
Bonne continuation !

Reply

Marsh Posté le 29-09-2013 à 12:34:13    

Complément à la réponse précédente :
dans le même registre sous INTCON2 je trouve les bits que je devrait trouver dans ce fichier (INTCON).
On dirait que Microchip a changer encore les bits car dans la notice de la puce en ma possession la configuration n'est pas la même.
pour la déclaration de ce registre (INTCON), je n'en ai pas faite.
pouvez vous m'indiquer la structure de cette déclaration.
Je devrai en faire pour plusieurs registres


Message édité par mandrin7 le 29-09-2013 à 12:37:30
Reply

Marsh Posté le 29-09-2013 à 12:47:23    

:hello: !
 
Voici ce qu'ont donné mes recherches :

  • Déjà, INTCON n'est pas un fichier mais un registre [:cupra]
  • Ensuite, est-ce que tu as inclus le bon fichier d'en-tête ? :??: J'ai trouvé sur Google un fichier p18F452.h qui lui contient bien la définition du registre :
Code :
  1. extern volatile near unsigned char       INTCON;


 
À voir si en modifiant l'en-tête ça fonctionne mieux...
:jap:


---------------
And in the end, the love you take is equal to the love you make
Reply

Marsh Posté le 30-09-2013 à 16:45:14    

bonjour,
Ce fichier "P18F452.H" est bien inclus en header avec
extern volatile near unsigned char       INTCON;
mais impossible de configurer ce registre.
un petit exemple
INTCONbits,5,1;
INTCON,4,0;
INTCONbits.RBIE=1;
aucune méthode ne fonctionne.
je suis a court d'idée
Si quelqun en a une merci
cordialement

Reply

Marsh Posté le 07-10-2013 à 17:37:03    

Bonjour ,
INTCON est un registre des PICs
Donc si tu inclue le fichier <HTC.h>
Tu devrais voir apparaitre le registre INTCON dedans.

 

Sinon soit du déclare
INTCON = 0x00; // par exemple
Ou
INTCONbits.GIE = 0x00;
Ou
GIE = 0x00;

 

Et normalement cela devrait marcher. Après je te conseille plutôt de commencer sur un PIC16F qui sont plus simple.

 

Reply

Marsh Posté le 07-10-2013 à 17:38:55    

Dsl ,
C'est
GIE = 0;
Car c'est un booléen et pas un octet

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed