Hola fantasyx!
Si no me equivoco tu programa hace lo siguiente:
1 - Configuras AD y utilizas el PWM.
2 - Led1 ON
3 - Led ON
Hasta que vuelvas a utilizar otra vez el AD y el PWM el pic se quedará procesando el incremento que le haces a la variable "i" para controlar los leds.
No sería mejor esto??? Mira a ver que te parece.
Codigo:
main()
{
int LedOn=0
int16 i=0;
int16 valor=0;
set_tris_c(0000000);
valor=read_adc();
// setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_1,255,1);
setup_adc_ports(AN0_AN1_VSS_VREF);
setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM);
// set_adc_channel(0);
while(true)
{
set_pwm1_duty(read_adc());
i++;
if(i==30000 && LedOn==1)
{
LedOn==0;
i=0;
}
if(i==30000 && LedOn==0)
{
LedOn==1;
i=0;
}
if(LedOn==1)
{
led1= 1; led= 0;
}
else
{
led1= 0; led= 1;
}
}//while
}// main
De esta forma, aunque un poco más lioso, los leds estarán un rato encendidos, otro rato apagados y... tus conversiones serán muy veloces puesto que se hacen de forma casi consecutiva.
Bueno... no se si me he explicado muy bien, si tienes alguna duda avisa que me empleo más a fondo jeje.
Un saludo desde Alicante