Problema al intentar generar interrupción

Hola a todos,
soy nuevo en este foro y me gustaría que me echáseis una mano con un problema que me ha surgido.
Estoy realizando el proyecto fin de carrera y entre otras cosas estoy programando un pic18f452.
La cuestión es que que utilizo un circuito para generar una interrupción externa y no consigo que se produzca la interrupción.

Os adjunto la rutina principal para que echéis un vistazo a la configuración de puertos, interrupción y demás a ver si puede estar ahí el problema. Mi tutor me ha dicho que hay por ahí un registro en el pic que me estoy olvidando para poder hacer que se produzca la interrupción, y que él, obviamente no se acuerda, por eso acudo al foro.

-----------------------------------

void main()
{
/* CONFIG. PUERTOS */
/* PUERTO_A: RA0(AnalogIN) RA1(DigitalOUT)-ANG.DISP */
TRISA=0x01;
RA1=0;
/* PUERTO_B: RB0(DigitalIN) interrupción externa 0 (paso por cero) */
TRISB=0x01;
/* CONFIG. A/D */
/* Canal: AN0, Fconv: Fosc/32, Referencia Vdd y Vss (5V), Encendido del Modulo A/D, Result. just. drcha */
ADCON0=0X81;
ADCON1=0x8E;
/* CONFIG. TIMER1, Borro Flag */
T1CON=0x00;
TMR1IF=0;
/* CONFIG. INT.EXT.0 */
/* Flanco bajada, Habilito int.ext.0, Borro Flag */
INTEDG0=0;
INT0IE=1;
INT0IF=0;
/* Habilitador global de interrupts. */
GIE=1;

while(1); //Espero interrupciones
}

--------------------------------------------------

y os adjunto también el circuito para generar la interrupción.

Gracias de antemano y espero vuestras respuestas

Saludos

A modo de prueba he intentado generar una interrupción con el pulsador S3 (RB0) del PICDEM 2 PLUS y tampoco lo consigo habilitando sólo la interrupción externa 0.
Sin embargo, consigo generar una interrupción habilitando la interrupción por cambio en el puerto B (RBIE=1).
Obviamente entra en la subrutina de interrupción pero el flag de interrupción ext 0 no se ha activado.

¿Alguien me puede ayudar por favor?
 

Adjuntos

  • CIRCUITO.png
    CIRCUITO.png
    19.6 KB · Visitas: 8
Última edición:
Atrás
Arriba