TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx en 16 de Enero de 2006, 20:34:00
-
como se hace para entrar con 2 analogicas en ano y an1 y salir con pwm1 pwm2
en pines distintos?
lo que necesito hacer es entrar con una continua en an0 y otra continua en an1
y en funcion de esos valores que cambie el pwm en ccp1 y ccp2(pic16f873)
no encuentro como definir la instruccion de setup_adc_ports(an1)
desde ya gracias
-
Primero en el encabezado debes setear el número de bits en la adquisición:
#device ADC=10 // Seteo del ADC para 10Bits
Después en el main debes setear el adc, timer2 (base de tiempo para pwm) y el pwm:
setup_adc_ports (ALL_ANALOG); // toda analógicas
setup_adc(ADC_CLOCK_INTERNAL); // a clock interno
setup_ccp1(CCP_PWM); //ccp1 modo PWM
setup_ccp2(CCP_PWM); //ccp2 modo PWM
setup_timer_2(T2_DIV_BY_16, 127, 1); // 488Hz (con XT=4MHz) esta frecuencia la podes variar cambiando los valores, fijate en el datasheet del micro que uses, que vienen las relaciones para calcular lo inherente a la frecuencia y al duty.
Por último, por ejemplo, en un bucle tomas los valores del ADC y seteas con los mismos el ancho del PWM:
set_adc_channel(0); // seteo del canal 0 del ADC
valor1 = read_adc(); // Lectura del canal 0 y se guarda en variable valor1
set_adc_channel(1); // seteo del canal 1 del ADC
valor2= read_adc(); // Lectura del canal 1 y se guarda en variable valor2
set_pwm1_duty(valor1); // Se cambia el ancho con el valor obtenido en canal 0.
set_pwm2_duty(valor2); // Se cambia el ancho con el valor obtenido en canal 1.
Espero que te sea de utilidad.
-
gracias !!!
lo voy a aprender...