Bonjour à vous,
Voici mon problème, j'ai beau essayer toute sorte de modifications, ça ne fonctionne pas... ça compile mais sur la carte ça ne marche pas quand j'appuie sur le switch...
Peut-être que je suis à coté de la plaque
Voici mon code, si vous avez une suggestion...
Notez que j'utilise MPLAB et le compilateur C18 et que je teste sur ICD2/PICDEM 2 PLUS DEMO BOARD.
Merci à vous !!!
-----------------------------------------------------------------------------------------------------------------------
#include <p18f2550.h>
//Set up the configuration bits */
#pragma config WDT = OFF // watchdog timer OFF
#pragma config PWRT = ON // power-up timer ON
#pragma config BOR = OFF // brown-out detect ON
#pragma config FOSC = HS // oscillator HS (quartz 4 MHz)
#pragma config PBADEN = ON // PORTB<4:0> pins are configured as digital I/O on Reset
#pragma config LVP = OFF // low voltage programming OFF
//Declaration prototypes
void button (void);
void temporisation (unsigned int count);
#pragma code high_vector_section=0x8
void high_vector (void)
{
_asm GOTO button _endasm
}
#pragma code
#pragma interrupt button
void button (void)
{
if (INTCONbits.INT0IF && INTCONbits.INT0IE)
{
INTCONbits.INT0IF = 0;
PORTBbits.RB2=1;
/* clear the interrupt flag */
temporisation (30000);
}
}
void temporisation (unsigned int count)
{
// boucle de temporisation
int i ;
for (i = 0; i < count; i++);
}
void main (void)
{
/* Enable interrupts */
INTCONbits.GIE = 1;
INTCONbits.PEIE = 1;
/* PORTB RB0 input for the button */
TRISBbits.TRISB0 = 1;
/* PORTB RB1, RB2, RB3 output*/
TRISBbits.TRISB1 = 0;
TRISBbits.TRISB2=0;
TRISBbits.TRISB3=0;
/* Set the button on RB0 to trigger an
interrupt. It is always high priority */
INTCONbits.INT0IE = 1;
PORTBbits.RB3=1;
PORTBbits.RB2=0;
PORTBbits.RB1=1;
while(1);
}
-----