TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: johanchala en 02 de Mayo de 2012, 13:01:12

Título: Ayuda conmutar Led con 18F4550
Publicado por: johanchala en 02 de Mayo de 2012, 13:01:12
Muy buenos días,

resulta que estoy programando con el pic18F4550 y quiero que con un pulsador conectado al pin A0 pueda encender un LED conectado al pin B0 y con ese mismo pulsador pueda apagar el LED.

He intentado todas mis ideas pero no resulta :(.

Agradecería alguien que pudiera dar una idea de como programar el PIC para lo que necesito, muchas gracias. 
Título: Re: Ayuda conmutar Led con 18F4550
Publicado por: rivale en 02 de Mayo de 2012, 13:49:48
en que lenguaje programas, que llevas hecho, para poderte ayudar
Título: Re: Ayuda conmutar Led con 18F4550
Publicado por: johanchala en 02 de Mayo de 2012, 13:54:54
Estoy programando en el PIC-C (CCS)... y esta es mi ultima idea, resulta pero tiene el problema que talvez ninguna de las dos condiciones se cumpla:

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   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_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   OUTPUT_B(0x00);
   OUTPUT_D(0x00);
   
   int bandera =0;
   int pin_check =0;
   while(1){
   
      pin_check = input_change_a();
   
      while(pin_check ==1 && bandera == 0 && input(pin_a0)){
           output_high(pin_d0);
           bandera =1;
         }
         
      delay_ms(2000);
     
      while(pin_check ==0 && bandera == 1 && input(pin_a0)){
           output_low(pin_d0);
           bandera =0;
         }
      delay_ms(2000);
     
           
     
   
   
   }
   
   

}
Título: Re: Ayuda conmutar Led con 18F4550
Publicado por: rivale en 02 de Mayo de 2012, 13:59:01
creo que lo mas facil seria usar la funcion para hacer conmutar el led.


algo asi:
Código: [Seleccionar]
if(input(pin_a0))
{
    output_toggle(pin_d0);
    while(input(pin_a0));
}

Título: Re: Ayuda conmutar Led con 18F4550
Publicado por: johanchala en 02 de Mayo de 2012, 14:05:19
heyyy muchas gracias rivale, estaba buscando precisamente una función que hiciera eso, yo sabia que debía existir una, hombre te agradezco, muchas gracias.