O meu objetivo é fazer com que toda vez que for acionada a Interrupção externa (RB0) o estado do led ligado a RD0 seja invertido, mas não funciona.
O que vocês notam de errado no código?
- Código: Selecionar todos
#include <xc.h>
//#include <delays.h>
#include<pic18f4550.h>
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator (HS))
#pragma config WDT = OFF
#pragma config LVP = OFF
int a;
void interrupt int0(void) // High priority interrupt
{
//for (a=0; a<1000; a++){}
INTCONbits.INT0F = 0;
PORTDbits.RD0 = !PORTDbits.RD0;//!PORTDbits.RD0;
//PORTDbits.RD0 = 1;
}
void interrupt low_priority LowIsr(void) //Low priority interrupt
{
}
void main(void)
{
ADCON1 = 15; //Desabilita canal a/d
TRISAbits.RA5 = 0;
PORTAbits.RA5 = 1; // transistor que habilita os leds no kit
TRISD = 0;
PORTD = 0;
TRISB = 0b00000011;
INTCONbits.GIE = 1;
INTCONbits.GIEH = 1;
INTCONbits.GIEL = 1;
INTCONbits.INT0IE = 1; //habilita INT0
INTCONbits.INT0F = 0; //Abaixa a flag de INT0
RCONbits.IPEN = 1; // Habilita interrupção com nível de prioridade Alto = 0x08 baixo = 0x18
while(1)
{
PORTDbits.RD7 = 1;//Não faz nada
}
}