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? o en que me estare equivocando de codigo?
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: