#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);