Buenos dias amigos del foro, hoy traigo una inquietud sobre un proyecto que estoy desarrollando, soy algo nuevo en este lenguaje de programacion. Estoy utilizando PIC COMPILER C, el detalle es que hago bien la conversion analogica digital pero al incluir las variables dentro de un ciclo while no hace nada, ni las incrementa ni las decrementa ni nada, alguien podria ayudarme... Yo quiero que el programa me lea los valores analogicos y los pase a digital(esto lo hace perfectamente), una vez hecho esto, los varie de acuerdo al valor leido, es decir si el valor leido es negativo(<128) incremente una variable en 1 y si es positivo (>128) la decremente, hasta que la variable tenga un valor especifico (igual a 128)... Aqui envio unas imagenes del codigo y de lo que me sale por pantalla
while((int)conversion!=128)
{
if((int)conversion>128)
{
control=(int)(control-1);
printf("%f\t V",control);
delay_ms(20);
puerto_b=control;
}
else
{
control=(int)(control+1);
printf("%f\t V",control);
delay_ms(20);
puerto_b=control;
}
medicion();
}
donde conversion y control vienen de la conversion analogica y digital
aqui esta el codigo de conversion A/D
void medicion(void)
{
setup_adc(adc_clock_internal); // configuro el conversor análogo digital
setup_adc_ports(RA0_RA1_ANALOG_RA3_RA2_REF); // configuro los pines de la conversion
set_adc_channel(0); // escojo el canal a convertir
delay_ms(20); // esperar mientras se inicializa el módulo A/D
conversion = read_adc(); // leer el valor
delay_ms(20);
set_adc_channel(1); // escojo el canal a convertir
delay_ms(20); // esperar mientras se inicializa el módulo A/D
control = read_adc(); // leer el valor
delay_ms(20);
ref=(int)conversion;
valor=(((conversion*10)/255)-5)/1.494;
}