Autor Tema: PWM como hacer para que no se inicie siempree!!!  (Leído 1159 veces)

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

Desconectado Freire

  • PIC10
  • *
  • Mensajes: 3
PWM como hacer para que no se inicie siempree!!!
« en: 10 de Noviembre de 2010, 14:09:26 »
Hola, estoy haciendo un cutre-seguidor de linea, el problema es que no se como hacer para que cada vez k se llama a la funcion esta empiece de nuevo y siempre me da un valor alto (5v) sea cual sea el valor del pwm, nose si me explico... si le coloco un delay dentro de cada if, tonces si me funciona bien, pero no quisiera que el programa se quedara esperando en el delay. Graciass!!


void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DIV_BY_4,124,1);
   setup_ccp1(CCP_PWM);
   setup_ccp2(CCP_PWM);
   set_pwm1_duty(0);
   set_pwm2_duty(0);
   setup_comparator(NC_NC_NC_NC);
   
   
   while(1){
                                           //                    LINEA NEGRA
   lectura=input_d();        //   D7   D6    D5    D4 ///// D3    D2    D1    D0
   
      if(lectura==0x01){          //D0  +derecha
         MD_AVANZA (0);
         MI_AVANZA (511);

      }
      else if(lectura==0x80){     //D7  +izquierda
         MD_AVANZA (511);
         MI_AVANZA (0);

      }
      else{
         MD_AVANZA (1023);
         MI_AVANZA (1023);
   
      }
   
   }

}

void MD_AVANZA (int pwm1){
   output_high(IN1);
   output_low(IN2);
   set_pwm1_duty(pwm1);
}

void MI_AVANZA (int pwm2){
   output_high(IN3);
   output_low(IN4);
   set_pwm2_duty(pwm2);
}