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 les fichiers INTCON ,INTCON2,INTCON3, etc. en C.
INTCON = 0b00101000;
INTCON = 0x28;
INTCON,5,1;
INTCON.5=1;
INTCONbits,5,1;
INTCONbits.5=1;
INTCONbits.RBIE=1;
aucune méthode ne fonctionne.
J’obtiens la réponse suivante "Error: syntax error"
Le fichier "P18F452.H" est bien inclus en header et dans le même dossier avec
extern volatile near unsigned char INTCON;
extern volatile near union {
struct {
unsigned RBIF:1;
unsigned INT0F:1;
unsigned T0IF:1;
unsigned RBIE:1;
unsigned INT0E:1;
unsigned T0IE:1;
unsigned PEIE:1;
unsigned GIE:1;
};
struct {
unsigned :1;
unsigned INT0IF:1;
unsigned TMR0IF:1;
unsigned :1;
unsigned INT0IE:1;
unsigned TMR0IE:1;
unsigned GIEL:1;
unsigned GIEH:1;
};
} INTCONbits;
Je ne vois pas ce qui n'est pas conforme au C ou au compilateur.
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.
je suis a court d'idée
Pourtant ça marche sur l’exemple suivant :
http://fr.wikiversity.org/wiki/Utili...t_le_langage_C
//******************** Compilateur C18 ***********************
#include <p18f452.h>
#include <stdio.h>
#pragma config WDT = OFF
void main(void) {
// configure USART
SPBRG = 25; // configure la vitesse (BAUD) 9600 N 8 1
TXSTA = 0x24;
RCSTA = 0x90; // active l'USART
// quartz comme source
T0CONbits.T0CS = 0;
// si 0 pas besoin diviseur suivant
T0CONbits.PSA = 1;
// division par 2
T0CONbits.T0PS0 = 0;
T0CONbits.T0PS1 = 0;
T0CONbits.T0PS2 = 1;
// passage en 8 bits
T0CONbits.T08BIT = 1;
T0CONbits.TMR0ON = 1; //C'est parti
// bit RA0 du PORTA en sortie
TRISAbits.TRISA0=0;
while(1) {
// TMR0H = 0x00; inutile car en 8 bits
TMR0L = TMR0L+8; // peut être le mieux
INTCONbits.TMR0IF = 0;
while (INTCONbits.TMR0IF == 0);
PORTAbits.RA0 = PORTAbits.RA0 ^1;
}
}
Merci d'avance, cordialement
-----