TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: miguech1 en 23 de Mayo de 2004, 17:12:00
-
#include <16f877a.h>
#use delay(clock=2000000)
#fuses hs
#include <lcd.c>
#byte portc=7
#byte portb=6
#use fast_io(b)
//respueta rapida de puerto b
int val1,val2,val3,setp,val_med;
float a0,a1,a2,xn_1,xn_2,yn,yn_1,kp,ki,kd,ts,xn;
main(){
setup_adc_ports(all_analog);
setup_adc(adc_clock_div_32);
setup_ccp1(ccp_pwm);
setup_ccp2(ccp_pwm);
setup_timer_2(t2_div_by_1,255,1);
lcd_init();
while(true){
while((input(pin_b0))){ // si es un cero
set_adc_channel(2);
val1=read_adc();
delay_us(10);
set_adc_channel(3);
val2=read_adc();
delay_us(10);
set_adc_channel(4);
val3=read_adc();
delay_us(10);
kp=(float)val1;
ki=(float)val2;
kd=(float)val3;
ts=0,01;
a0=kp+ki*ts+kd/ts;
a1=kp+2*kd/ts;
a2=ki/ts;
lcd_gotoxy(1,1);
printf(lcd_putc,"p:%1.1f,i:%1.1f,d:%1.1f",kp,ki,kd);}lcd_putc("f"
;
while((!input(pin_b0))){
set_adc_channel(0);
setp=read_adc();
delay_us(1);
-
Hola. Quisiera preguntarte si has tenido oportunidad de probar el código trascripto . Recién lo veo y aún no lo he analizado, pero dado el tiempo que tiene el mensaje quizás hayas hecho alguna prueba y sacado ya algunas conclusiones sobre el mismo.
Aguardo tu respuesta.
Saludos.
-
Yo tambien mire este codigo hace tiempo, seguramente esta incompleto, ya que solo realiza una etapa de configuración de los parametros PID tomando los valores de las esntradas analogicas, pero en si no hay ningun tipo de control en este programa.