problemas con programa para controlar temperatura de un horno con logica difusa

hola estoy realizando un controlador de temperatura para un horno con logica difusa
pero tengo problemas para programar me sale error de sintaxis

PHP:
//DEFINICIÓN DE RANGOS DE LAS FUNCIONES
//TEMPERATURA
#define TEMP_ES_CALIENTE (settemp>=50 && settemp<=70)
#define TEMP_ES_ALTA (settemp>=50 && settemp<=100)
#define TEMP_ES_MUYALTA (settemp>=80 && settemp<=100)
//ECUACIONES DEFINIDAS PARA LA TEMPERATURA DEL HORNO ELÉCTRICO
#define EC_TCALIENTE(x) (70-(float)x)/20
#define EC_TALTAPOS(x) ((float)x-50)/20
#define EC_TALTANEG(x) (100-(float)x)/20
#define EC_TMUYALTA(x) ((float)x-80)/20
//DEFINICIÓN DE RANGOS DE LAS FUNCIONES
//ERROR DEL SISTEMA
#define ERROR_ES_NEGATIVO (error>=(-300) && error<=(-0.75))
#define ERROR_ES_NEGATIVOBAJO (error>=(-1) && error<=0)
#define ERROR_ES_MODERADO (error>=(-0.5) && error<=0.5)
#define ERROR_ES_POSITIVOBAJO (error>=0 && error<=1)
#define ERROR_ES_POSITIVO (error>=0.75 && error<=300)
//ECUACIONES DEFINIDAS PARA EL ERROR DEL SISTEMA
#define EC_NEGATIVO(x) ((-0.75)-(float)x)/0.75
#define EC_NEGATIVOBAJOPOS(x) ((float)x+1)/0.5
#define EC_NEGATIVOBAJONEG(x) -(float)x/0.5
#define EC_MODERADOPOS(x) ((float)x+0.5)/0.5
#define EC_MODERADONEG(x) (0.5-(float)x)/0.5
#define EC_POSITIVOBAJOPOS(x) (float)x/0.5
#define EC_POSITIVOBAJONEG(x) (1-(float)x)/0.5
#define EC_POSITIVO(x) ((float)x-0.75)/0.75
//ENTRADAS DEL SISTEMA DIFUSO
//TEMPERATURA REAL
float SensorTemp() 
{
int cnt = 0;
float psensor;
ADCON1=0b11000101; //Activo ADC0 y Vref+ 1,5V
for(cnt=0;cnt<=10;cnt++) psensor += Adc_Read(0);
{
delay_ms(250);
return psensor;
}
}
//CREACIÓN DE LOS CONJUNTOS DIFUSOS DE ENTRADA
//DEFINICIÓN DE MÉTODOS PARA LA TEMPERATURA
//CALIENTE
float Funcion_TCaliente(float valor)
{
if(valor<50)
{
return 1;
}
else if(valor>=50 && valor<=70)
{
return EC_TCALIENTE(valor);
}
else if(valor>70)
{
return 0;
}
}
//ALTA
float Funcion_TAlta(float valor)
{
if(valor<50)
{
return 0;
}
else if(valor>=50 && valor<70)
{
return EC_TALTAPOS(valor);
}
 
else if(valor>=70 && valor<80)
{
return 1;
}
else if(valor>=80 && valor<100)
{
return EC_TALTANEG(valor);
}
else if(valor>=100)
{
return 0;
}
}
 
//MUYALTA
float Funcion_TMuyAlta(float valor)
{
if(valor<80)
{
return 0;
}
else if(valor>=80 && valor<=100)
{
return EC_TMUYALTA(valor);
}
else if(valor>100)
{
return 1;
}
}
 
//DEFINICIÓN DE MÉTODOS PARA El ERROR DEL SISTEMA
//NEGATIVO
float Funcion_ENegativo(float valor)
{
if(valor<(-1.5))
{
return 1;
}
else if(valor>=(-1.5) && valor<(-0.75))
{
return EC_NEGATIVO(valor);
}
else if(valor>=(-0.75))
{
return 0;
}
}
//NEGATIVOBAJO
float Funcion_ENegativoBajo(float valor)
{
if(valor<(-1))
{
return 0;
}
else if(valor>=(-1) && valor<(-0.5))
{
return EC_NEGATIVOBAJOPOS(valor);
}
else if(valor>=(-0.5) && valor<0)
{
return EC_NEGATIVOBAJONEG(valor);
}
else if(valor>=0)
{
return 0;
}
}
//MODERADO
float Funcion_EModerado(float valor)
{
if(valor<(-0.5))
{
return 0;
}
else if(valor>=(-0.5) && valor<0)
{
return EC_MODERADOPOS(valor);
}
else if(valor>=0 && valor<0.5)
{
return EC_MODERADONEG(valor);
} 
else if(valor>=0.5)
{
return 0;
}
}
//POSITIVOBAJO
float Funcion_EPositivoBajo(float valor)
{
if(valor<0)
{
return 0;
}
else if(valor>=0 && valor<0.5)
{
return EC_POSITIVOBAJOPOS(valor);
}
else if(valor>=0.5 && valor<1)
{
return EC_POSITIVOBAJONEG(valor);
}
else if(valor>=1)
{
return 0;
} 
}
//POSITIVO
float Funcion_EPositivo(float valor)
{
if(valor<0.75)
{
return 0;
}
else if(valor>=0.75 && valor<1.5)
{ 
return EC_POSITIVO(valor);
} 
else if(valor>=1.5)
{
return 1;
}
}
//MÉTODO DE OBTENCIÓN DEL MiNIMO
float Obtener_Minimo(float pertenencia_setpoint, float pertenencia_error)
{
float minimo;
if(pertenencia_setpoint<=pertenencia_error)
{
minimo = pertenencia_setpoint;
}
else if (pertenencia_error<pertenencia_setpoint)
{
minimo = pertenencia_error;
return minimo;
}
}
//MÉTODO DE OBTENCIÓN DEL MáXIMO
float Obtener_Maximo(float v1, float v2, float v3, float v4, float v5)
{
float resultado[10];
float maximo;
if(v1>=v2)
{
resultado[1] = v1;
}
else if (v2>v1)
{
resultado[1] = v2;
}
if(v2>=v3)
{
resultado[2] = v2;
}
else if (v3>v2)
{
resultado[2] = v3;
}
if(v3>=v4)
{
resultado[3] = v3;
}
else if (v4>v3){
resultado[3] = v4;
}
if(v4>=v5)
{
resultado[4] = v4;
}
else if (v5>v4)
{
resultado[4] = v5;
}
if(resultado[1]>=resultado[2])
{
resultado[5] = resultado[1];
}
else if (resultado[2]>resultado[1])
{
resultado[5] = resultado[2];
}
if(resultado[2]>=resultado[3])
{
resultado[6] = resultado[2];
}
else if (resultado[3]>resultado[2])
{
resultado[6] = resultado[3];
}
if(resultado[3]>=resultado[4])
{
resultado[7] = resultado[3];
}
else if (resultado[4]>resultado[3])
{
resultado[7] = resultado[4];
}
if(resultado[5]>=resultado[6])
{
resultado[8] = resultado[5];
}
else if (resultado[6]>resultado[5])
{
resultado[8] = resultado[6];
}
if(resultado[6]>=resultado[7])
{
resultado[9] = resultado[6];
}
else if (resultado[7]>resultado[6])
{
resultado[9] = resultado[7];
}
if(resultado[8]>=resultado[9])
{
maximo = resultado[8];
}
else if (resultado[9]>resultado[8])
{
maximo = resultado[9];
return maximo;
}
}
float defusificacion(float yb, float ypb, float ym, float ypt, float yt);
float salida;
float xb2;
float xpb1;
float xpb2;
float xm1;
float xm2;
float xpt1;
float xpt2; 
float xt1;
float xt2;
float ypm1;
float ypm2;
float ypm3;
float ypm4;
float pm1;
float pm2;
float pm3;
float pm4;
if(yb>0 && ypb<=0 && ym<=0 && ypt<=0 && yt<=0)
{
xt2 = 100;
xb2=-15*yb+25;
xpb1=0;
xpb2=0;
xm1=0;
xm2=0;
xpt1=0;
xpt2=0;
xt1=0;
pm1=0;
pm2=0;
pm3=0;
pm4=0;
salida = (xb2*yb)/(2*yb);
} 
else if(yb<=0 && ypb>0 && ym<=0 && ypt<=0 && yt<=0)
{
xb2=0;
xpb1=15*ypb+15;
xpb2=-15*ypb+45;
xm1=0;
xm2=0;
xpt1=0;
xpt2=0;
xt1=0;
pm1=0;
pm2=0;
pm3=0;
pm4=0;
salida = ((xpb1+xpb2)*ypb)/(2*ypb);
} 
else if(yb<=0 && ypb<=0 && ym>0 && ypt<=0 && yt<=0)
{
xb2=0;
xpb1=0;
xpb2=0;
xm1=15*ym+35;
xm2=-15*ym+65;
xpt1=0;
xpt2=0;
xt1=0;
pm1=0;
pm2=0;
pm3=0;
pm4=0;
salida = ((xm1+xm2)*ym)/(2*ym);
} 
else if(yb<=0 && ypb<=0 && ym<=0 && ypt>0 && yt<=0)
{
xb2=0;
xpb1=0;
xpb2=0;
xm1=0;
xm2=0;
xpt1=15*ypt+55;
xpt2=-15*ypt+85;
xt1=0;
pm1=0;
pm2=0;
pm3=0;
pm4=0;
salida = ((xpt1+xpt2)*ypt)/(2*ypt);
} 
else if(yb<=0 && ypb<=0 && ym<=0 && ypt<=0 && yt>0)
{
xb2=0;
xpb1=0;
xpb2=0;
xm1=0;
xm2=0;
xpt1= 0;
xpt2=0;
xt1=15*yt+75;
pm1=0;
pm2=0;
pm3=0;
pm4=0;
salida = ((xt1+xt2)*yt)/(2*yt);
}
else if(yb != 0 && ypb != 0)
{
if(yb < 0.33 && ypb < 0.33)
{
if(yb=ypb)
{
xb2=0;
xpb1=0;
xpb2=-15*ypb+45;
ypm1 = 0;
pm1 = 0;
} 
else if(yb<ypb)
{
xb2=15*yb+15;
xpb1=15*ypb+15;
xpb2=-15*ypb+45;
ypm1 = 0;
pm1 = 0;
} 
else if(ypb<yb)
{
xb2=-15*yb+25;
xpb1=-15*ypb+25;
xpb2=-15*ypb+45;
ypm1 = 0;
pm1 = 0;
}
} 
else if(yb < 0.33 && ypb > 0.33)
{
xb2=15*yb+15;
xpb1=15*ypb+15;
xpb2=-15*ypb+45;
ypm1 = 0;
pm1=0;
}
else if(yb > 0.33 && ypb < 0.33){
xb2=-15*yb+25;
xpb1=-15*ypb+25;
xpb2=-15*ypb+45;
ypm1 = 0;
pm1=0;
}
else if(yb > 0.33 && ypb > 0.33)
{
xb2=-15*yb+25;
ypm1=0.33;
pm1=20;
xpb1=15*ypb+15;
xpb2=-15*ypb+45;
}
salida = ((xb2*yb)+(xpb1+xpb2)*ypb+(pm1*ypm1))/(2*yb+2*ypb+ypm1);
}
else if(ypb != 0 && ym != 0){
if(ypb < 0.33 && ym < 0.33){
if(ypb=ym){
xpb1=15*ypb+15;
xpb2=0;
xm1=0;
xm2=-15*ym+65;
ypm2 = 0;
pm2=0;
}
else if(ypb<ym)
{
xpb1=15*ypb+15;
xpb2=15*ypb+35;
xm1=15*ym+35;
xm2=-15*ym+65;
ypm2 = 0;
pm2=0;
}
else if(ypb>ym)
{
xpb1=15*ypb+15;
xpb2=-15*ypb+45;
xm1=-15*ym+45;
xm2=-15*ym+65;
ypm2 = 0;
pm2=0;
}
} 
else if(ypb < 0.33 && ym > 0.33)
{
xpb1=15*ypb+15;
xpb2=15*ypb+35;
xm1=15*ym+35;
xm2=-15*ym+65;
ypm2 = 0;
pm2=0;
} 
else if(ypb > 0.33 && ym < 0.33)
{
xpb1=15*ypb+15;
xpb2=-15*ypb+45;
xm1=-15*ym+45;
xm2=-15*ym+65;
ypm2 = 0;
pm2=0;
}
else if(ypb > 0.33 && ym > 0.33)
{
xpb1=15*ypb+15;
xpb2=-15*ypb+45;
ypm2=0.33;
pm2=40;
xm1=15*ym+35;
xm2=-15*ym+65;
}
salida = ((xpb1+xpb2)*ypb+(xm1+xm2)*ym+(pm2*ypm2))/(2*ypb+2*ypm2);
}
else if(ym != 0 && ypt != 0)
{
if(ym < 0.33 && ypt < 0.33)
{
if(ym=ypt)
{
xm1=15*ym+35;
xm2=0;
xpt1=0;
xpt2=-15*ypt+85;
ypm3 = 0;
pm3=0;
}
else if(ym < ypt)
{
xm1=15*ym+35;
xm2=15*ym+55;
xpt1=15*ypt+55;
xpt2=-15*ypt+85;
ypm3 = 0;
pm3=0;
}
else if(ym > ypt)
{
xm1=15*ym+35;
xm2=-15*ym+65;
xpt1=-15*ypt+65;
xpt2=-15*ypt+85;
ypm3 = 0;
pm3=0;
}
}
else if(ym < 0.33 && ypt > 0.33)
{
xm1=15*ym+35;
xm2=15*ym+55;
xpt1=15*ypt+55;
xpt2=-15*ypt+85;
ypm3 = 0;
pm3=0;
}
else if(ym > 0.33 && ypt < 0.33)
{
xm1=15*ym+35;
xm2=-15*ym+65;
xpt1=-15*ypt+65;
xpt2=-15*ypt+85;
ypm3 = 0;
pm3=0;
}
else if(ym > 0.33 && ypt > 0.33)
{
xm1=15*ym+35;
xm2=-15*ym+65;
ypm3 = 0.33;
pm3=60;
xpt1=15*ypt+65;
xpt2=-15*ypt+85;
}
salida = ((xm1+xm2)*ym+(xpt1+xpt2)*ypt+(pm3*ypm3))/(2*ym+2*ypt+ypm3);
}
else if(ypt != 0 && yt != 0)
{
if(ypt < 0.33 && yt < 0.33)
{
if(ypt=yt)
{
xpt1=15*ypt+55;
xpt2=0;
xt1=0;
ypm4 = 0;
pm4=0;
}
else if(ypt<yt)
{
xpt1=15*ypt+55;
xpt2=15*ypt+75;
xt1=15*yt+75;
ypm4 = 0;
pm4=0;
}
else if(ypt>yt)
{
xpt1=15*ypt+55;
xpt2=-15*ypt+85;
xt1=-15*yt+85;
ypm4 = 0;
pm4=0;
}
}
else if(ypt < 0.33 && yt > 0.33)
{
xpt1=15*ypt+55;
xpt2=15*ypt+75;
xt1=15*yt+75;
ypm4 = 0;
pm4=0;
} 
else if(ypt > 0.33 && yt < 0.33)
{
xpt1=15*ypt+55;
xpt2=-15*ypt+85;
xt1=-15*yt+85;
ypm4 = 0;
pm4=0;
}
else if(ypt > 0.33 && yt > 0.33)
{
xpt1=15*ypt+55;
xpt2=-15*ypt+85;
ypm4=0.33;
pm4=80;
xt1=15*yt+75;
}
salida = ((xpt1+xpt2)*ypt+(xt1+xt2)*yt+(pm4*ypm4))/(2*ypt+2*yt+ypm4);
}
return salida;
}
// configuracion del LCD
sbit LCD_RS at RC4_bit;
sbit LCD_EN at RC5_bit;
sbit LCD_D4 at RC0_bit;
sbit LCD_D5 at RC1_bit;
sbit LCD_D6 at RC2_bit;
sbit LCD_D7 at RC3_bit;
sbit LCD_RS_Direction at TRISC4_bit;
sbit LCD_EN_Direction at TRISC5_bit;
sbit LCD_D4_Direction at TRISC0_bit;
sbit LCD_D5_Direction at TRISC1_bit;
sbit LCD_D6_Direction at TRISC2_bit;
sbit LCD_D7_Direction at TRISC3_bit;
//PUERTO PARA EL KEYPAD4X4
char keypadPort at PORTD;
//VARIABLES GLOBALES
unsigned short kp;
int proced, paso, datotemp, datotempdec, cntpd, pos;
float settemp, setpoint, temp, tempdec, sensor, error;
float dato[3];
float dec[3];
float regla[15];
float ConjuntoTemperatura[3];
float ConjuntoError[5];
float yb, ypb, ym, ypt, yt, valorsalida;
char *txt;
void main() 
{
LCD_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Keypad_Init();
UART1_Init(9600);
PORTB = 0X00;
TRISB = 0;
Delay_ms(100);
//Declaración de variables.
kp = 0;
proced = 0;
paso = 0;
pos = 33;
settemp = 0;
datotemp = 0;
cntpd = 0;
datotempdec = 0;
temp = 0;
tempdec = 0;
settemp = 0;
error = 0;
dato[1] = 0;
dato[2] = 0;
dato[3] = 0;
dec[1] = 0;
dec[2] = 0;
dec[3] = 0;
regla[0]=0;
regla[1]=0;
regla[2]=0;
regla[3]=0;
regla[4]=0;
regla[5]=0;
regla[6]=0;
regla[7]=0;
regla[8]=0;
regla[9]=0;
regla[10]=0;
regla[11]=0;
regla[12]=0;
regla[13]=0;
regla[14]=0;
ConjuntoTemperatura[0]=0;
ConjuntoTemperatura[1]=0;
ConjuntoTemperatura[2]=0;
ConjuntoTemperatura[3]=0;
ConjuntoError[0] = 0;
ConjuntoError[1] = 0;
ConjuntoError[2] = 0;
ConjuntoError[3] = 0;
ConjuntoError[4] = 0;
ConjuntoError[5] = 0;
yb=0;
ypb=0;
ym=0;
ypt=0;
yt=0;
valorsalida = 0;
while(1)
{
txt = " ";
kp = Keypad_Key_Click();
delay_ms(150);
//Preparando Valor de Salida, para tranformarlo a ASCII
switch (kp) {
case 1: kp = 49; break; // 1
case 2: kp = 50; break; // 2
case 3: kp = 51; break; // 3
case 4: kp = 11; break; //
case 5: kp = 52; break; // 4
case 6: kp = 53; break; // 5
case 7: kp = 54; break; // 6
case 8: kp = 12; break; // IncTemp
case 9: kp = 55; break; // 7
case 10: kp = 56; break; // 8
case 11: kp = 57; break; // 9
case 12: kp = 13; break; // DecTemp
case 13: kp = 10; break; // Puntodecimal
case 14: kp = 48; break; // 0
case 15: kp = 15; break; // SetTemp
case 16: kp = 14; break; // Borrar
}
//IMPRESIÓN DEL VALOR NUMÉRICO ENTERO
if(proced==0)
{
Lcd_Out(1,1, "--------------------");
Lcd_Out(2,1, "* Control - DIFUSO *");
Lcd_Out(1,21,"Ingrese (T):");
Lcd_Out(2,21,"--------------------");
if (kp>=48 && kp<58 && datotemp<=2)
{
datotemp++;
if(datotemp>=1)
{
dato[datotemp] = kp-48;
Lcd_Chr(1,pos=pos+1,dato[datotemp]+48);
}
}
}
//IMPRESIÓN DEL PUNTO DECIMAL
if(kp==10)
{
cntpd++;
paso=1;
if(cntpd==1)
{
Lcd_Chr(1,pos=pos+1,\'.\');
}
}
//IMPRESIÓN DEL DATO DECIMÁL
if(paso==1 && kp>=48 && kp<58)
{
datotempdec++;
dec[datotempdec] = kp-48;
Lcd_Chr(1,pos=pos+1,dec[datotempdec]+48);
}
if(kp==15)
{
if(datotemp>0)
{
if(datotemp==1) temp = dato[1];
if(datotemp==2) temp = dato[2] + (10*dato[1]);
if(datotemp==3) temp = dato[3] + (10*dato[2]) + (100*dato[1]);
}
if(datotempdec>0)
{
if(datotempdec==1) tempdec = dec[1]/10;
if(datotempdec==2) tempdec = dec[1]/10+dec[2]/100;
if(datotempdec==3) tempdec = dec[1]/10+dec[2]/100+dec[3]/1000;
}
settemp = (temp+tempdec);
Lcd_Cmd(_LCD_CLEAR);
if(settemp<50)
{
Lcd_out(1,1, " Fuera de Rango");
Lcd_out(2,1, " Ingrese nuevo valor");
Lcd_out(1,20," > 50 ");
delay_ms(1000);
kp=14;
}
if(settemp>100)
{
Lcd_out(1,1," Fuera de Rango");
Lcd_out(2,1," Ingrese nuevo valor");
Lcd_out(1,20," <100 ");
delay_ms(1000);
kp=14;
}
}
if(settemp >= 50 && settemp <= 100)
{
settemp = settemp;
delay_ms(50);
proced=1;
}
if(proced==1)
{
Lcd_Out(1,1, "Setpoint:");
Lcd_Out(2,1, "Sensor :");
Lcd_Out(1,21,"Error :");
Lcd_Out(2,21,"Salida :");
Lcd_Out(1,19, " C");
Lcd_Out(2,19, " C");
Lcd_Out(1,39, " u");
Lcd_Out(2,30, " %");
proced=2;
}
if(proced==2)
{
//Lectura setpoint
floattostr(settemp,txt);
Lcd_out(1,11,txt);
delay_ms(50);
//Lectura del valor de temperatura del sensor
sensor = ((Sensortemp()/10)*0.1411)+1.54;
floattostr(sensor,txt);
Lcd_out(2,11,txt);
delay_ms(50);
//Segunda entrada para el control difuso - Cálculo del error
error = (sensor-settemp);
floattostr(error,txt);
Lcd_out(1,31,txt);
delay_ms(50);
//FUZZYFICACIÓN
//Conjunto Temperatura
ConjuntoTemperatura[0] = Funcion_TCaliente(settemp);
ConjuntoTemperatura[1] = Funcion_TAlta(settemp);
ConjuntoTemperatura[2] = Funcion_TMuyAlta(settemp);
//Conjunto Error
ConjuntoError[0] = Funcion_ENegativo(error);
ConjuntoError[1] = Funcion_ENegativoBajo(error);
ConjuntoError[2] = Funcion_EModerado(error);
ConjuntoError[3] = Funcion_EPositivoBajo(error);
ConjuntoError[4] = Funcion_EPositivo(error);
delay_ms(50);
//DEFINICIÓN DE REGLAS DE INFERENCIA APLICANDO EL MINIMO
if(TEMP_ES_CALIENTE && ERROR_ES_NEGATIVO)
{
regla[0] = Obtener_Minimo(ConjuntoTemperatura[0],ConjuntoError[0]);
} 
else regla[0] = 0;
if(TEMP_ES_CALIENTE && ERROR_ES_NEGATIVOBAJO)
{
regla[1] = Obtener_Minimo(ConjuntoTemperatura[0],ConjuntoError[1]);
}
else regla[1] = 0;
if(TEMP_ES_CALIENTE && ERROR_ES_MODERADO)
{
regla[2] = Obtener_Minimo(ConjuntoTemperatura[0],ConjuntoError[2]);
}
else regla[2] = 0;
if(TEMP_ES_CALIENTE && ERROR_ES_POSITIVOBAJO)
{
regla[3] = Obtener_Minimo(ConjuntoTemperatura[0],ConjuntoError[3]);
}
else regla[3] = 0;
if(TEMP_ES_CALIENTE && ERROR_ES_POSITIVO)
{
regla[4] = Obtener_Minimo(ConjuntoTemperatura[0],ConjuntoError[4]);
} 
else regla[4] = 0;
if(TEMP_ES_ALTA && ERROR_ES_NEGATIVO)
{
regla[5] = Obtener_Minimo(ConjuntoTemperatura[1],ConjuntoError[0]);
}
else regla[5] = 0;
if(TEMP_ES_ALTA && ERROR_ES_NEGATIVOBAJO)
{
regla[6] = Obtener_Minimo(ConjuntoTemperatura[1], ConjuntoError[1]);
}
else regla[6] = 0;
if(TEMP_ES_ALTA && ERROR_ES_MODERADO)
{
regla[7] = Obtener_Minimo(ConjuntoTemperatura[1], ConjuntoError[2]);
}
else regla[7] = 0;
if(TEMP_ES_ALTA && ERROR_ES_POSITIVOBAJO)
{
regla[8] = Obtener_Minimo(ConjuntoTemperatura[1], ConjuntoError[3]);
}
else regla[8] = 0;
if(TEMP_ES_ALTA && ERROR_ES_POSITIVO)
{
regla[9] = Obtener_Minimo(ConjuntoTemperatura[1], ConjuntoError[4]);
}
else regla[9] = 0;
if(TEMP_ES_MUYALTA && ERROR_ES_NEGATIVO)
{
regla[10] = Obtener_Minimo(ConjuntoTemperatura[2], ConjuntoError[0]);
}
else regla[10] = 0;
if(TEMP_ES_MUYALTA && ERROR_ES_NEGATIVOBAJO)
{
regla[11] = Obtener_Minimo(ConjuntoTemperatura[2], ConjuntoError[1]);
}
else regla[11] = 0;
if(TEMP_ES_MUYALTA && ERROR_ES_MODERADO)
{
regla[12] = Obtener_Minimo(ConjuntoTemperatura[2],ConjuntoError[2]);
}
else regla[12] = 0;
if(TEMP_ES_MUYALTA && ERROR_ES_POSITIVOBAJO)
{
regla[13] = Obtener_Minimo(ConjuntoTemperatura[2],ConjuntoError[3]);
}
else regla[13] = 0;
if(TEMP_ES_MUYALTA && ERROR_ES_POSITIVO)
{
regla[14] = Obtener_Minimo(ConjuntoTemperatura[2],ConjuntoError[4]);
} 
else regla[14] = 0;
 
if(TEMP_ES_MUYALTA && ERROR_ES_POSITIVO)
{
regla[15]=Obtener_Minimo(ConjuntoTemperatura[2],ConjuntoError[5]);
}
else regla [15];
delay_ms(50);
//OBTENCIÓN DEL MÁXIMO
//SALIDA BAJA
yb = Obtener_Maximo(regla[4],regla[9],regla[14],0,0);
//SALIDA PARCIAL BAJA
ypb = Obtener_Maximo(regla[3],regla[8],regla[13],0,0);
//SALIDA PARCIAL MEDIA
ym = Obtener_Maximo(regla[2],regla[7],regla[12],0,0);
//SALIDA PARCIAL TOTAL
ypt = Obtener_Maximo(regla[1],regla[6],regla[11],0,0);
//SALIDA TOTAL
yt = Obtener_Maximo(regla[0],regla[5],regla[10],0,0);
delay_ms(50);
valorsalida = defusificacion(yb,ypb,ym,ypt,yt);
if (valorsalida >=0 && valorsalida<=100)
{
floattostr(valorsalida,txt);
Lcd_out(2,31,txt);
PORTB = (valorsalida*255)/100;
delay_ms(100);
proced=3;
}
}
if(proced==3)
{
UART1_Write(\'A\');
UART1_Write(settemp);
UART1_Write(sensor);
UART1_Write(valorsalida);
delay_ms(250);
proced = 2;
}
if(kp==14){
kp = 0;
paso=0;
pos = 33;
dato[0] = 0;
dato[1] = 0;
dato[2] = 0;
dec[0] = 0;
dec[1] = 0;
dec[2] = 0;
temp = 0;
tempdec = 0;
settemp = 0;
error = 0;
valorsalida = 0;
datotemp = 0;
cntpd = 0;
datotempdec = 0;
ConjuntoTemperatura[1]=0;
ConjuntoTemperatura[2]=0;
ConjuntoTemperatura[3]=0;
ConjuntoError[1] = 0;
ConjuntoError[2] = 0;
ConjuntoError[3] = 0;
ConjuntoError[4] = 0;
ConjuntoError[5] = 0;
regla[0]=0;
regla[1]=0;
regla[2]=0;
regla[3]=0;
regla[4]=0;
regla[5]=0;
regla[6]=0;
regla[7]=0;
regla[8]=0;
regla[9]=0;
regla[10]=0;
regla[11]=0;
regla[12]=0;
regla[13]=0;
regla[14]=0;
yb=0;
ypb=0;
ym=0;
ypt=0;
yt=0;
Lcd_Cmd(_LCD_CLEAR);
delay_ms(250);
proced = 0;
}
}
} ...
 
Última edición por un moderador:
Por favor, reedita tu mensaje. Selecciona todo el código y mételo entre marcas PHP, para que la web lo coloree. Y eso ya te dará una pista de dónde está el error.
 
Sí, pero el código sigue con los >, & y demás familia.

Que trabaje un poquito el nuevo usuario, por favor :)
 
Atrás
Arriba