Antes que nada un millon de agradecimientos para ti Ingeniero_Olaf por tus aportes con este modulo RF de Microchip, pues con ellos logre salir de muchas dudas que tenia y logre comunicarme igualmente por comunicacion normal y por modo promiscuo. En cuanto a tu duda yo monte mi MRF24J40 con este mismo PIC18F2550 y tire la interrupcion por INT2 por lo mismo de la comunicacion spi con el modulo. Como te dije anteriormente me funciono perfectamente. En cuanto al hardware lo unico que hice fue conectar una resistencia pulldown del pin del pic hacia tierra para evitar ruidos y asegurar un 0 logico. Yo utilice un cristal de 12MHz en vez de utilizar el oscilador interno del micro. A continuacion te dejo el codigo de inicializacion que utlice para ver si te sirve de algo y sales de tu problema. Si no te sirve lo que te doy se me ocurre que mires el datasheet en la pagina 16 ya que el RB2 es utilizado como INT2, como puerto analogo AN8 o como external USB transceiver VMO y como tu utilizas USB depronto puede estar sucediendo algo con esto, no se fue algo que se me ocurrio. Espero que te sirva lo que te dejo y nuevamente muchas gracias por tus aportes me salvaron de muchos problemas
codigo:
#include <18F2550.h>
#fuses HS, NOWDT, NOPROTECT, NOLVP, NOPUT
#use delay(clock=12000000)
#byte port_a = 0xF80 //Direccionamiento de puertos
#byte port_b = 0xF81
#byte port_c = 0xF82
#int_EXT2
void EXT2_isr(void)
{
................
}
void main ()
{
set_tris_a (0x04); // Configurado todos los pines input excepto RA0,RA1,RA3 (LCD,E,RS,RW)
set_tris_b (0x05); // Configurado todos los pines output excepto RB0,RB2,RB3
set_tris_c (0x00); // Configurado todos los pines input excepto RC2,RC7
setup_adc_ports(NO_ANALOGS|VSS_VDD); //Sin puertos analogos
setup_adc(ADC_OFF); //Conversor A/D apagado
//Configuracion del SPI para que funcione el MRF24J40
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_XMIT_L_TO_H|SPI_CLK_DIV_4);
//Interrupcion por TIMERS deshabilitados
//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);
enable_interrupts(INT_EXT2); //Habilitacion de interrupcion externa 2
EXT_INT_EDGE(2,L_TO_H); //Habilito interrupciones por flanco de subida en el INT2
enable_interrupts(GLOBAL); //Habilito todas las interrupciones anteriores
port_a = 0x00; //Limpio Puerto A
port_b = 0x00; //Limpio Puerto B
port_c = 0x04; //Limpio Puerto C y Deshabilito comunicacion SPI
.............
}