Autor Tema: Duda Problema con Interrupcion Externa desactivando ADC || 18f4550  (Leído 1599 veces)

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

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
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.

Código: [Seleccionar]
#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  :D, espero alguien me sepa explicar cual son los motivos. Saludos.

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Duda Problema con Interrupcion Externa desactivando ADC || 18f4550
« Respuesta #1 en: 18 de Junio de 2012, 22:03:29 »
creo que tu problema es el argumento que le pones a la funcion seyip_adc_ports, el ADC_OFF no es para esta funcion, si no quieres ninguno sea analogico el argumento correcto es NO_ANALOGS.

puedes checar esto en la ayuda del ccs
"Nada es imposible, no si puedes imaginarlo"

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
Re: Duda Problema con Interrupcion Externa desactivando ADC || 18f4550
« Respuesta #2 en: 19 de Junio de 2012, 12:47:14 »
 ((:-)) Gracias bro, eso es lo malo de usar plantillas :lol:, esa se nos facilito en la Uni y al parecer ese detalle si era el indicado, creo lo han confundido con setup_adc(). Saludos  :).