Hola amigos de TodoPic, pues me ha surgido una duda de algo curioso que he notado, no se si sea por algo de registros u otros motivos del pic pero bueno mi duda viene de que cuando desactivo los ADC en el 18f4550 la interrupcion externa no se "dispara", no se cual sean las razones pero la unica manera de que se "dispare" es no poniendo la linea que desactiva los ADC, he visto algo de un fuse NOPBADEN que al ponerlo permite el uso del pin b0-b4 como i/o digital y este esta activado, tambien lo he intentado sin dicho fuse y no funciona, les dejo el codigo para que chequen, espero alguien me sepa aclarar a que se debe.
#include <18F4550.h>
#DEVICE ADC=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,MCLR,NOPBADEN
#use delay(clock=48Mhz)
#use fast_io(a)
#use fast_io(b)
int8 banderaFlanco = 0;
#INT_EXT
void externa(){
(banderaFlanco == 1) ? (banderaFlanco = 0) : (banderaFlanco = 1);
}
void main(){
set_tris_a(0b00000000);
set_tris_b(0b00000001);
//setup_adc_ports(ADC_OFF); //De esta manera si funciona, si quito esta linea ya no lo hace.
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
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_EXT);
ext_int_edge(l_to_h);
enable_interrupts(global);
output_a(0);
output_b(0);
for(;;)
{
}
}
De antemano gracias
, espero alguien me sepa explicar cual son los motivos. Saludos.