aqui pego un programa que lee el valor analogico, y el valor lo manda como el ancho de pulso del pwm, asi, el pwm variara dependiendo del valor analogico
long duty;
int grados_temperatura;
void toma_adc(void){
set_adc_channel(0);
delay_ms(1);
duty= read_adc();
delay_ms(1);
}
void main()
{
setup_adc_ports(RA0_RA1_ANALOG_RA3_REF);
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_timer_2(T2_DIV_BY_8,0x4F,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(TRUE);
setup_ccp1(CCP_PWM);
set_tris_a(0xFF);
// TODO: USER CODE!!
do{
toma_adc();
output_b(duty);
set_pwm1_duty(duty);
}while(true);
}
espero te sirva,saludos