Hola mario el compilador que utilizo es el PICC version 3.249 esta es la ultima version, me parece, ya que las anteriores tienen unos problemas respecto a los tipos de datos long en la impresion del LCD.
Mira por el momento te puedo adelantar la rutina de control.
#int_TIMER2
TIMER2_isr(){
value=read_adc();
Retroalimentacion = value*0.004887585; //retro en volts
Error_k0 = Velocidad_Volts - Retroalimentacion; //Velocidad en Volts y Retro En volts
uk = Error_k0*bo+Error_k1*b1+Error_k2*b2+uk_anterior*Anterior;
if(uk<=0){
uk=0;
}
uk_PWM=(long int)uk;
if(uk_PWM>=1023) uk_PWM=1023;
if(uk_PWM<=0) uk_PWM=0;
set_pwm1_duty(uk_PWM);
}
Realmente eso fue la ultima programacion en cuanto a los valores de las constantes b0,b1,b2 salieron correspondientemente a la simulacion en MATLAB de la funcion de transferencia.
float b0=8,b1=-8.12,b2=0.386;
Todos estos detalles los voy a comentar en el reporte que tenemos que entregar. El cual pienso subir de la misma forma que subi el anterior.