Bonjour a tous,
Je programme un pic 18f2620 sur MPLAB8 avec CC8e en langage C et je teste mon programme sur une plaque easypic3 via des BP.
Je debute avec les pic et je n'arrive pas a creer mon interruption sur le portb. voila mon code, si quelqu'un voi une erreur dans le code ou une erreur au niveau des registres.(cc8e compile bien).
Code:
Merci d'avance.Code:#include "int18xxx.H" /*************************************************** PRIORITE HAUTE *********************************************/ // DEFAULT INTERRUPT STRUCTURE (RECOMMENDED) void _highPriorityInt(void); #pragma origin 0x8 interrupt highPriorityIntServer(void) { _highPriorityInt(); /* W, STATUS and BSR are saved to shadow registers handle the interrupt 8 code words available including call and RETFIE */ #pragma fastMode // restore W, STATUS and BSR from shadow registers } void _highPriorityInt(void) { int_save_registers // save registers on demand int i; PORTA=0x00; /*for(i=0;i<10000;i++); PORTA=0x00; for(i=0;i<10000;i++);*/ INTCON=0b11111000; INTCON3=0b11011000; int_restore_registers // restore registers on demand } void main(void) { TRISA=0x00; /* PORTA=0x00 en sortie */ PORTA=0xFF; TRISB=0xFF; /* PB=0xFF en entree */ PORTB=0x00; TRISC=0xFF; /* PORTA=0xFF en entree */ PORTC=0x00; RCON=0b00011001; INTCON=0b10001000; //INTCON3: INTERRUPT CONTROL REGISTER 0 INTCON2=0b01110000; //INTCON3: INTERRUPT CONTROL REGISTER 2 INTCON3=0b00011000; //INTCON3: INTERRUPT CONTROL REGISTER 3 /*PIR1=0b00000000; //PIR1: PERIPHERAL INTERRUPT REQUEST (FLAG) REGISTER 1 PIR2=0b00000000; //PIR2: PERIPHERAL INTERRUPT REQUEST (FLAG) REGISTER 2 PIE1=0b00000000; //PIE1: PERIPHERAL INTERRUPT ENABLE REGISTER 1 PIE2=0b00000000; //PIE2: PERIPHERAL INTERRUPT ENABLE REGISTER 2 IPR1=0b00000000; //IPR1: PERIPHERAL INTERRUPT PRIORITY REGISTER 1 IPR2=0b00000000; //IPR2: PERIPHERAL INTERRUPT PRIORITY REGISTER 2 OSCTUNE=0b00000000; // OSCILLATOR TUNING REGISTER OSCCON=0b01000000; // OSCILLATOR CONTROL REGISTER T0CON=0b11000000; // TIMER0 CONTROL REGISTER TMR0L=0b00000111; // low bits register conteur 0x00->0xFF */ while(1) // une boucle infinie { PORTA=0xFF; } }
Cordialement .
ps: desole pour l'orthographe je suis dislecsique.
-----