Autor Tema: Interrupcion Ext1 en 18F2550 no funciona  (Leído 2323 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado QIQE

  • PIC18
  • ****
  • Mensajes: 335
Interrupcion Ext1 en 18F2550 no funciona
« en: 13 de Enero de 2010, 14:46:03 »
Hola, que tal? he intentado hacer una interrupcion externa por RB1 con con este pic pero no me funciona, sinembargo por RB0 me funciona sin problemas ya le he dado mil vueltas, hasta el punto de generar un nuevo proyecto solo con estas dos interrupiones, y sigue sin funcionar por RB1, alguna idea??
Código: [Seleccionar]

#include <18F2550.h>
#device adc=8
#device HIGH_INTS=true
#int_EXT1 HIGH

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES HSPLL                    //High Speed Crystal/Resonator with PLL enabled
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOIESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES NOPBADEN                 //PORTB pins are configured as digital I/O on RESET
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOLPT1OSC                //Timer1 configured for higher power operation
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL5                     //Divide By 5(20MHz oscillator input)
#FUSES CPUDIV1                  //No System Clock Postscaler
#FUSES USBDIV                   //USB clock source comes from PLL divide by 2
#FUSES VREGEN                   //USB voltage regulator enabled

#use delay(clock=48000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

#int_TIMER1
void  TIMER1_isr(void)
{

}

#int_EXT
void  EXT_isr(void)
{
output_toggle(pin_c1);
}

#int_EXT1
void  EXT1_isr(void)
{
output_toggle(pin_c0);
}



void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   
   
   ext_int_edge( 1, H_TO_L); // Set up PIC18 EXT1
   
   
   
   disable_interrupts(INT_TIMER1);
   enable_interrupts(INT_EXT);
   enable_interrupts(INT_EXT1);
   enable_interrupts(GLOBAL);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

   

   // TODO: USER CODE!!
while (true)
   {
   
   }
}



Muchas gracias
Muchas gracias por vuestro tiempo.

Saludos desde valencia!!!

Desconectado megadigit

  • PIC10
  • *
  • Mensajes: 15
Re: Interrupcion Ext1 en 18F2550 no funciona
« Respuesta #1 en: 15 de Enero de 2010, 18:10:50 »
Alguna ves tube un problema similar con la interrupcion externa, he implemente la siguiente estructura para solucionarlo:

-Dentro del main() coloca lo siguiente:

         ext_int_edge(L_TO_H); //Le digo que el disparo sera de alto a bajo
         clear_interrupt(INT_EXT); //Limpiamos la interrupcion
         enable_interrupts(INT_EXT); //Habilito la interrupcion externa
         enable_interrupts(GLOBAL); //Y habilito las interrupciones de manera global

Y con ello se soluciono. Suerte

Desconectado QIQE

  • PIC18
  • ****
  • Mensajes: 335
Re: Interrupcion Ext1 en 18F2550 no funciona
« Respuesta #2 en: 15 de Enero de 2010, 19:25:36 »
no me hace caso es raro porque la interrupcion cero me funciona y la 2 tambien pero la 1 no, por ahora lo he solucionado cambiando a la 2

muchas gracias
Muchas gracias por vuestro tiempo.

Saludos desde valencia!!!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Interrupcion Ext1 en 18F2550 no funciona
« Respuesta #3 en: 16 de Enero de 2010, 04:29:41 »
¿Tendrá algo que ver con el módulo SPI?, en el RB1 está la salida SCK.
Quizás quitando el setup_spi() del main...

Desconectado QIQE

  • PIC18
  • ****
  • Mensajes: 335
Re: Interrupcion Ext1 en 18F2550 no funciona
« Respuesta #4 en: 16 de Enero de 2010, 06:03:07 »
Tampoco hace nada :S
Muchas gracias por vuestro tiempo.

Saludos desde valencia!!!