Que tal como estan, el problema con el cual me gustaria me ayudaran es el siguiente:
Tengo un programa que hice en lenguaje C en PicC para el PIC16F877A, programa que tiene como funcion controlar el PWM por medio del ADC y a la ves mostrar el valor de velocidad en una LCD, bueno lo que hice fue el codigo que les adjunto, al parecer esta bien porque lo simule en Proteus y si cambia el valor mostrado en la LCD, aunque no estoy bien seguro si este trabajando bien el PWM pues lo grabe el Pic y no funciona el PWM, el valor en la LCD si aparece pero no cambia nada en el PWM, ¿afecta el uso de la LCD al mismo tiempo que el PWM?
o en que me estare equivocando de codigo?
El codigo que uso es:
Ademas anexo la simulacion, les agradecere mucho su ayuda 
Tengo un programa que hice en lenguaje C en PicC para el PIC16F877A, programa que tiene como funcion controlar el PWM por medio del ADC y a la ves mostrar el valor de velocidad en una LCD, bueno lo que hice fue el codigo que les adjunto, al parecer esta bien porque lo simule en Proteus y si cambia el valor mostrado en la LCD, aunque no estoy bien seguro si este trabajando bien el PWM pues lo grabe el Pic y no funciona el PWM, el valor en la LCD si aparece pero no cambia nada en el PWM, ¿afecta el uso de la LCD al mismo tiempo que el PWM?
El codigo que uso es:
Código:
#include "C:\proyecto\Version1.1\Control PWM\Controll_PWM.h"
#include <LCD.C>
void main()
{ unsigned int leido;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
// TODO: USER CODE!!
while (true)
{
set_adc_channel(0);
leido=read_adc();
lcd_gotoxy(1,1);
printf(lcd_putc,"%u ",leido);
setup_timer_2(T2_DIV_BY_1,61,16);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
set_pwm1_duty(leido);
set_pwm2_duty(0);
}
}
Adjuntos
Última edición por un moderador: